मी बर्याच काळापासून या ब्लॉगमध्ये कोडिंगवर चर्चा केली नाही. म्हणून मी त्यांच्यापासून सुरुवात करणार आहे, तुम्हाला कदाचित फिबोनाची अनुक्रमातील n वा क्रमांक सापडेल. किंवा तुम्हाला जावा मध्ये फिबोनाची नंबर कसा सापडतो? किंवा कदाचित प्रिंट करा फिबोनाची मालिका. जर तुम्ही या ब्लॉगचे नियमित वाचक असाल, तर तुम्हाला कदाचित माहित असेल की मी आधीच पुनरावृत्ती आणि आवर्ती फिबोनाची मालिका छापण्यासाठी अल्गोरिदम, परंतु खरोखर चर्चा केली नाही, विशेषत: ती परत करण्यासाठी प्रोग्राम लिहिण्यासाठी नववा फिबोनाची क्रमांक: जावा मध्ये. काळजी करू नका की प्रतीक्षा संपली आहे, जसे की या लेखात, आम्ही ही सामान्य समस्या सोडवू, समस्या सोडवणे, पुनरावृत्ती, पुनरावृत्ती, अल्गोरिदम या मूलभूत कौशल्यांबद्दल थोडे अधिक जाणून घेऊ.

परंतु, सुरू करण्यासाठी, आवश्यकता स्पष्ट करूया – समस्या विधान.

फिबोनाची:

फिबोनाची मालिकेचा N’th टर्म परत करण्यासाठी फिब पद्धत लिहा. आम्ही मोजणे सुरू करतो:

तंतु (0) = 0:
तंतु (1) = 1.


उदाहरणे
0 -> 0:
6 -> 8:

याचा अर्थ शून्य फिबोनाचीची संख्या शून्य आहे, आणि 6 व्या फिबोनाचीची संख्या 8 आहे, և आपल्याला एक सूत्र बनवावे लागेल नववा फिबोनाची क्रमांक मोजत आहे ते प्रविष्ट करा जावा: किंवा तुमची पसंतीची प्रोग्रामिंग भाषा अजगर किंवा: जावास्क्रिप्ट: किंवा कदाचित स्केल:.

फिबोनाची अनुक्रमातील निब ही संज्ञा

या समस्येचे निराकरण करण्यासाठी, आपल्याला प्रथम फिबोनाची अनुक्रम काय आहे हे माहित असणे आवश्यक आहे. खालील सूत्रानुसार परिभाषित केलेल्या अविभाज्य संख्यांचा हा क्रम आहे:

तंतु (0) = 0:
तंतु (1) = 1:
fib (n) = fib (n-1) + fib (n-2)

जर तुम्ही हे सूत्र बघितले तर तुम्हाला माहिती आहे की फिबोनाची अनुक्रमाची संज्ञा मागील दोन F च्या बरोबरीची आहे.इबोनाची संख्या. एकदा तुम्हाला हे कळले की, तुम्हाला फक्त कोड लिहायचा आहे, जो आम्ही पुढच्या भागात पाहू. फिबोनाची मालिका देखील एक चांगले उदाहरण आहे डायनॅमिक प्रोग्रामिंग, एनक्रिप्शन समस्या सोडवण्यासाठी लोकप्रिय तंत्र.

मुलाखत कोडिंगमध्ये डायनॅमिक प्रोग्रामिंग समस्या खूप सामान्य आहेत, अनेक प्रोग्रामरसाठी मोठी आव्हाने आहेत. मुलाखत कोडिंग दरम्यान सोडवण्यासाठी या सर्वात कठीण समस्या आहेत, म्हणून, वापरणे Dy प्रोग्रामिंगवर आधारित डायनॅमिक समस्या फिबोनाची मालिकेप्रमाणे, मुलाखत कोडिंगची तयारी करण्याचा हा एक चांगला मार्ग आहे.

जर तुम्ही कोडिंग मुलाखतींची तयारी करत असाल, तर मी तुम्हाला डायनॅमिक प्रोग्रामिंगची डुप्लिकेट सुचवतो bag बॅग सारख्या समस्या सोडवा – सर्वात लांब सामान्य सबटेक्स. आपल्याला कोर्सची आवश्यकता असल्यास, मी याची शिफारस करतो डायनॅमिक प्रोग्रामिंगच्या कलेवर प्रभुत्व मिळवा उजव्या प्रकाशाने उडेमीवर. आपण रीग्रेशन सारख्या गोष्टी देखील शिकाल, जे कोडिंग समस्या सोडवण्यासाठी एक चांगले तंत्र आहे.

आणि हे आहे जेव्हा आपण बोआ कॉन्स्ट्रिक्टरवर काढता तेव्हा फिबोनाची अनुक्रम कसा दिसतो?rd:

नवव्या फिबोनाची क्रमांकासाठी अभिप्राय

फिबोनाची मालिकेच्या एन-टर्मची गणना करण्याचे दोन मुख्य मार्ग आहेत: परत पुनरावृत्तीreg प्रतिगमन न करता. फिबोनाची अनुक्रम स्वाभाविकपणे पुनरावृत्ती असल्याने, लिहिणे सोपे आहे – पुनरावृत्ती समाधान समजून घ्या, म्हणून आम्ही ते प्रथम पाहू.

फिबोनाची मालिका नैसर्गिकरित्या पुनरावृत्ती का आहे? ठीक आहे, कारण तुम्ही समस्येचे उप-समस्यांमध्ये विभाजन करू शकता, तुम्ही ते त्याच प्रकारे सोडवू शकता. उदाहरणार्थ, Nth Fibonacci नंबर शोधण्यासाठी, तुम्ही हे करू शकता: एन -1 फिबोनाची क्रमांक शोधा आणि एन -2 फिबोनाची क्रमांक: त्याच प्रकारे և एकत्र: निकाल.

पण तुम्ही सुरुवात कशी कराल? ठीक आहे, सुरुवातीला मला माहित आहे की स्टार्टअप हा सर्वात कठीण भाग आहे, परंतु जर तुम्ही समस्या स्टेटमेंट बघितले तर तुम्हाला आढळेल की तुम्हाला एक फंक्शन लिहावे लागेल जे संपूर्ण युक्तिवाद (nth टर्म) घेईल a संपूर्ण मूल्य परत करेल, n – फिबोनाची संख्या हे सुरू करण्यासाठी पुरेसे आहे.

पुढे, पुनरावृत्ती समाधान लिहिण्यासाठी, आपल्याला प्रथम मुख्य केस शोधणे आवश्यक आहे. पुनरावृत्तीच्या बाबतीत, समस्या उप-समस्यांमध्ये विभागली जाते जोपर्यंत आपण त्यांचे निराकरण करू शकत नाही, main मुख्य प्रकरण आपल्याला सर्वात लहान उप-समस्येची चिंता करते जी आपल्याला कशी सोडवायची हे माहित आहे. हे तंत्र विभाजन, विजय तंत्र म्हणूनही ओळखले जाते. आपण त्यांना नंतर पाहू शकता जावा डेटा स्ट्रक्चर – अल्गोरिदम अभ्यासक्रम विभाजित करणे, जिंकणे आणि अल्गोरिदम समस्या सोडवण्याच्या विविध तंत्रांबद्दल अधिक जाणून घ्या.

जावा मधील Nth फिबोनाची क्रमांक - समाधानासह एन्कोडिंग समस्या

आमच्याकडे Nib Fibonacci क्रमांकासाठी दोन मूलभूत प्रकरणे आहेत तंतु (0) = 0: आणि तंतु (1) = 1: याचा अर्थ आम्हाला हे फंक्शन 0 և 1 इनपुटसाठी कसे लिहायचे ते आधीच माहित आहे.

मुख्य प्रकरणासाठी समस्या सोडवल्यानंतर, लहान समस्येचे समाधान एकत्र करून मोठी समस्या कशी सोडवायची हे जाणून घेणे बाकी आहे, जे पुनरावृत्ती कोड आहे, जेथे फंक्शन स्वतः कॉल करते.

निब हा फिबोनाची मालिकेचा पुनरावृत्ती कोड आहे

fib (n) = fib (n-1) + fib (n-2);

पूर्ण, आवश्यक ते सर्व, आता आमचे पुनरावृत्ती कार्य चाचणीसाठी तयार आहे.

जावा मधील Nth Fibonacci क्रमांकाची गणना करण्यासाठी येथे एक पुनरावृत्ती उपाय आहे.

import org.junit.Assert;

/**
 * Fibonacci Write the fib method to return the N’th term. We start counting
 * from: fib(0) = 0 fib(1) = 1. Examples 0 -> 0 6 -> 8
 *
 */
public class CodingProblem {

  public static int fib(int n) {
    if (n == 0) {
      return 0;
    }
    if (n == 1) {
      return 1;
    }

    return fib(n - 1) + fib(n - 2);
  }

  public static void main(String args[]) {
    Assert.assertEquals(0, fib(0));
    Assert.assertEquals(1, fib(1));
    Assert.assertEquals(1, fib(2));
    Assert.assertEquals(2, fib(3));
    Assert.assertEquals(3, fib(4));
    Assert.assertEquals(5, fib(5));
  }
}

आपण पाहू शकता की आमचा चाचणी कार्यक्रम चाचणी करीत आहे तंतु () 0, 1, 2, 3, 4 և 5 सारख्या विविध इनपुटसाठी पद्धत. तुम्ही Nth Fibonacci क्रमांकाची गणना करण्यासाठी कोणतीही संख्या पास करू शकता. उदाहरणार्थ, गणना करणे फिबोनाची क्रमांक 20 आपण कॉल करू शकता तंतु (2).

मी या कार्यक्रमावर काहीही छापले नाही, परंतु मी प्रतिपादनाचे विधान वापरले, याचा अर्थ असा की जर तुमचा फिबोनाची फंक्शन योग्य असेल तर कोणत्याही चुका न करता या समस्येचे निराकरण करणे चांगले कार्य करते, परंतु जर कार्यक्रम अपेक्षेप्रमाणे कार्य करत नसेल तर हे भिन्न मूल्ये परत करेल – पॅनेलमधील त्रुटींमुळे आमचे प्रतिपादन विधान अयशस्वी होईल.

सांत्वन छापण्यापेक्षा हा एक चांगला दृष्टीकोन आहे, कारण जेव्हा आपण प्रतिपादन विधान पाहता तेव्हा आपल्याला माहित असते की फंक्शनची अपेक्षा काय आहे – परिणाम स्वयंचलितपणे प्रतिपादन विधानाने तपासला जातो, मॅन्युअल तपासणीद्वारे नाही.

एवढे जावा मध्ये नवव्या फिबोनाची क्रमांकाची गणना कशी करावी. मी म्हटल्याप्रमाणे, आपण पुनरावृत्ती आणि पुनरावृत्ती या दोन्हीद्वारे समस्या सोडवू शकता – आम्ही प्रथम पुनरावृत्तीकडे पाहिले कारण ते लिहिणे सोपे आहे – समजून घेणे. आपण प्रयत्न करण्यापूर्वी पुढील लेखात मी डुप्लीकेट कोड समजावून सांगेन: हा प्रोग्राम चालवणे.

आपण इच्छित असल्यास, आपण वरील अल्गोरिदममध्ये एक समस्या देखील शोधू शकता जी सुधारली जाऊ शकते. तुम्ही मोजू शकता का? मोठा (O) वेळेची गुंतागुंत – आपण ते कसे कमी करू शकता? आपण प्रतीक्षा करू शकत नसल्यास, पुढील प्रशिक्षणासाठी येथे काही संसाधने आहेत.

इतर: डेटा संरचना – अल्गोरिदम तुम्हाला आवडेल असे लेख

  • डेटा स्ट्रक्चरवरील 5 पुस्तके in सखोल शिक्षणासाठी अल्गोरिदम (पुस्तके)
  • जावा मध्ये अॅरे रिव्हर्स कसे करावे? (उपाय)
  • प्रोग्रामरसाठी 75+ ओडी कोडिंग मुलाखत प्रश्न (प्रश्न)
  • जावा अॅरेमधून डुप्लिकेट आयटम कसे काढायचे? (उपाय)
  • प्रोग्रामरसाठी 6 डायनॅमिक प्रोग्रामिंग अभ्यासक्रम (सर्वोत्तम अभ्यासक्रम)
  • जावा मध्ये पुनरावृत्ती वाक्य अल्गोरिदम कसे लागू करावे? (उपाय)
  • 50+ डेटा स्ट्रक्चर և अल्गोरिदम मुलाखत समस्या (यादी:)
  • प्रोग्रामरसाठी 10 (मोफत) डेटा स्ट्रक्चर अभ्यासक्रम (मोफत अभ्यासक्रम)
  • रिग्रेशनशिवाय बायनरी नोड्स कसे प्रिंट करावे? (उपाय)
  • अभिप्राय अल्गोरिदम (उपाय)
  • क्रॅक कोडिंग मुलाखतीसाठी 10 DS, Algo և SQL अभ्यासक्रम (अभ्यासक्रम)
  • पुनरावृत्ती प्रीऑर्डर संक्रमण (समाधान)
  • जावा मध्ये दिलेल्या बायनरी ट्री नोड्सची संख्या कशी मोजावी? (उपाय)
  • रिकर्सिव्ह इनऑर्डर स्विचिंग अल्गोरिदम (समाधान)
  • विकासकांसाठी 10 मोफत डेटा स्ट्रक्चर अल्गोरिदम अभ्यासक्रम (अभ्यासक्रम)
  • मुलाखतींमधून 100+ डेटा स्ट्रक्चर कोडिंग समस्या (प्रश्न)

हा लेख आतापर्यंत वाचल्याबद्दल धन्यवाद. तुम्हाला हे आवडल्यास जावा मध्ये नववा फिबोनाची उपाय मग कृपया आपले मित्र आणि सहकाऱ्यांसह शेअर करा. आपल्याला काही समस्या असल्यास, कृपया एक टीप सोडा.

पुनश्च: – जर तुम्ही डेटा स्ट्रक्चर և अल्गोरिदमबद्दल तुमची समज सुधारण्यासाठी मोफत अल्गोरिदम अभ्यासक्रम शोधत असाल तर तुम्ही हे देखील तपासावे नवशिक्यांसाठी मोफत जावा डेटा स्ट्रक्चर्स उडेमी वर अभ्यासक्रम. हे पूर्णपणे विनामूल्य आहे.