फाइबोनैचि संख्याएं एक विशेष अनुक्रम हैं जहां पहला मान 0 के रूप में पूर्व-घोषित है और दूसरा मान 1 के रूप में पूर्व-घोषित है। शेष संख्याएं पिछली दो संख्याओं को जोड़कर इन दोनों से उत्पन्न होती हैं। सभी फाइबोनैचि संख्याएँ धनात्मक पूर्णांक हैं, जो 0 से शुरू होती हैं। पहले बारह फाइबोनैचि संख्याएँ और उन्हें कैसे प्राप्त किया जाता है, इस प्रकार हैं:
0
1
1 + 0 = 1
1 + 1 = 2
2 + 1 = 3
3 + 2 = 5
5 + 3 = 8
8 + 5 = 13
13 + 8 = 21
21 + 13 = 34
34 + 21 = 55
55 + 34 = 89
योग व्यंजकों के बिना, इन फाइबोनैचि संख्याओं को एक तालिका में निम्नानुसार रखा जा सकता है:
0 | 1 | 1 | दो | 3 | 5 | 8 | 13 | इक्कीस | 3. 4 | 55 | 89 |
0 | 1 | दो | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ग्यारह |
पहली पंक्ति में फाइबोनैचि संख्याएँ हैं। दूसरी पंक्ति में शून्य-आधारित अनुक्रमणिकाएं हैं, यह मानते हुए कि फाइबोनैचि संख्याएं एक सरणी में हैं।
फाइबोनैचि संख्याओं को O(n) समय और O(1) समय में उत्पन्न किया जा सकता है। इन समय जटिलता अभिव्यक्तियों में, n का अर्थ है n मुख्य संचालन, और 1 का अर्थ है 1 मुख्य संचालन। O(n) के साथ, n फाइबोनैचि संख्याएँ उत्पन्न होती हैं, जो 0 से शुरू होती हैं। O(1) के साथ, संबंधित सूचकांक से एक फाइबोनैचि संख्या उत्पन्न होती है। यही कारण है कि यह n मुख्य संचालन के बजाय सिर्फ एक मुख्य ऑपरेशन लेता है।
इस लेख का उद्देश्य यह समझाना है कि किसी भी तरह से, पायथन का उपयोग करके फाइबोनैचि संख्याओं का उत्पादन कैसे किया जाए।
फाइबोनैचि संख्या के लिए सूत्र
फाइबोनैचि संख्या की औपचारिक परिभाषा है:
जहां एफ एन शून्य-आधारित n यदि n 1 है, तो केवल 0 को फाइबोनैचि संख्या के रूप में मुद्रित किया जाएगा। यदि n 2 है, तो 0 और 1 को उसी क्रम में फाइबोनैचि संख्याओं के रूप में मुद्रित किया जाएगा। यदि n 3 है, तो 0, 1 और 1 को उसी क्रम में फाइबोनैचि संख्याओं के रूप में मुद्रित किया जाएगा। यदि n 4 है, तो 0, 1, 1, और 2 को उसी क्रम में फाइबोनैचि संख्याओं के रूप में मुद्रित किया जाएगा। यदि n 5 है, तो 0, 1, 1, 2, और 3 को उसी क्रम में फाइबोनैचि संख्याओं के रूप में मुद्रित किया जाएगा। यदि n 6 है, तो 0, 1, 1, 2, 3, और 5 को फाइबोनैचि संख्याओं के रूप में उसी क्रम में मुद्रित किया जाएगा - और इसी तरह। पहले n फाइबोनैचि संख्याओं का उत्पादन करने के लिए पायथन फ़ंक्शन है: यह n तत्वों की एक सरणी बनाकर शुरू होता है, सभी को शून्य से आरंभ किया जाता है। यह सरणी फाइबोनैचि संख्याओं को धारण करेगी। पहली फाइबोनैचि संख्या, 0, पहले से ही मौजूद है। दूसरा फाइबोनैचि संख्या, 1, अगले कथन (फ़ंक्शन में) द्वारा निर्दिष्ट किया गया है। फिर फॉर-लूप है, जो इंडेक्स 2 से n से ठीक पहले शुरू होता है। इसमें कथन है: यह तत्काल पिछले दो नंबर जोड़ता है। फ़ंक्शन को कॉल करने और पहले बारह फाइबोनैचि संख्याओं को प्रिंट करने के लिए कोड हो सकता है: एन = 12 आउटपुट है: एक गणितीय सूत्र है जो एक शून्य-आधारित सूचकांक को उसके संबंधित फाइबोनैचि संख्या से जोड़ता है। सूत्र है: ध्यान दें कि समीकरण के दायीं ओर, यह 5 का वर्गमूल नहीं है जिसे घात n तक बढ़ाया जाता है; यह कोष्ठकों में व्यंजक है जिसे घात n तक बढ़ा दिया गया है। ऐसे दो भाव हैं। यदि n 0 है, तो Fibn 0 होगा। यदि n 1 है, तो Fib एन होगा 1. यदि n 2 है, Fib एन होगा 1. यदि n 3 है, Fib एन 2 होगा। यदि n 4 है, Fib एन 3 होगा - और इसी तरह। पाठक n के लिए अलग-अलग मानों को प्रतिस्थापित करके और मूल्यांकन करके इस सूत्र को गणितीय रूप से सत्यापित कर सकता है। n इस सूत्र में एक शून्य-आधारित सूचकांक है। इस सूत्र के लिए पायथन कोड है: आयात गणित गणित मॉड्यूल आयात किया गया था। इसमें वर्गमूल का कार्य है। ऑपरेटर, ** का उपयोग शक्ति के लिए किया जाता है। फ़ंक्शन fibNo () सीधे सूत्र को लागू करता है। फ़ाइबनो () फ़ंक्शन के लिए एक उपयुक्त कॉल और प्रिंटिंग है: एन = 11 आउटपुट है: उत्तर से अनावश्यक दशमलव अंकों को हटाना संभव है। हालाँकि, यह कुछ और समय के लिए चर्चा है। यदि अलग-अलग एन इंडेक्स के लिए अलग-अलग फाइबोनैचि संख्याओं की आवश्यकता होती है, तो प्रत्येक एन इंडेक्स के लिए अलग-अलग संबंधित फाइबोनैचि संख्याओं को वापस करने के लिए फ़ंक्शन fibNo() को एक बार कॉल करना होगा। निम्न प्रोग्राम शून्य-आधारित अनुक्रमणिका, 7 से 9 (समावेशी) के लिए ऐसा करता है: आयात गणित आउटपुट है: ध्यान दें कि जिस तरह से फॉर-लूप को पायथन में कोडित किया गया है। पहला इंडेक्स 7 है। अगला इंडेक्स 8 है, और आखिरी इंडेक्स 9 है। 10 रेंज तर्क में 9 + 1 है। 10 की स्थिति में मान अंतिम शून्य-आधारित इंडेक्स प्लस 1 होना चाहिए। पहला तर्क, 7, प्रारंभ शून्य-आधारित अनुक्रमणिका है। फाइबोनैचि संख्याएं पूर्ण संख्याओं (सकारात्मक पूर्णांक) का एक विशेष क्रम है। यह 0 से शुरू होता है, उसके बाद 1 बिना शर्त। शेष संख्याएँ वहाँ से तत्काल पिछली दो संख्याओं को जोड़कर विकसित की जाती हैं। पहले n फाइबोनैचि संख्याएं प्राप्त करने के लिए, 0 और 1 को पहले दो के रूप में स्वीकार करें, फिर बाकी के लिए, एक कथन के साथ फॉर-लूप का उपयोग करें जैसे: जो तत्काल पिछली दो संख्याओं को जोड़ता है। शून्य-आधारित सूचकांक n से केवल एक फाइबोनैचि संख्या प्राप्त करने के लिए, सूत्र का उपयोग करें:
O(n) समय . में फाइबोनैचि संख्याओं का निर्माण
गिरफ्तारी = [ 0 ] * ( एन )
आगमन [ 1 ] = 1
के लिये मैं में सीमा ( दो , एन ) :
आगमन [ मैं ] = गिरफ्तार [ मैं - 1 ] + गिरफ्तार [ मैं - दो ]
वापसी आगमन
ए = फाइबोनैचि (एन)
मैं सीमा में (एन) के लिए:
प्रिंट (ए [i], अंत = '' ')
प्रिंट () लगातार समय में एक फाइबोनैचि संख्या का निर्माण
एफआईबीएन = ( ( ( 1 +math.sqrt ( 5 ) ) / दो ) ** एन - ( ( 1 -गणित वर्ग ( 5 ) ) / दो ) ** एन ) / गणित.वर्ग ( 5 )
वापसी एफआईबीएन
राइट = फ़ाइबनो (एन)
प्रिंट (सेवानिवृत्त)
एफआईबीएन = ( ( ( 1 +math.sqrt ( 5 ) ) / दो ) ** एन - ( ( 1 -गणित वर्ग ( 5 ) ) / दो ) ** एन ) / गणित.वर्ग ( 5 )
वापसी एफआईबीएन
के लिये मैं में सीमा ( 7 , 10 ) :
प्रिंट ( फाइबनो ( मैं ) , समाप्त = '' )
प्रिंट ( )
निष्कर्ष