पायथन भाषा में फाइबोनैचि संख्याएं

Payathana Bhasa Mem Pha Ibonaici Sankhya Em



'यदि 1 में 0 जोड़ा जाता है, तो उत्तर 1 होगा। यदि उत्तर 1 और परिशिष्ट (संवर्धन नहीं) को एक साथ जोड़ा जाता है, तो नया उत्तर होगा। यदि यह नया उत्तर और इसके परिशिष्ट को एक साथ जोड़ा जाता है, तो उत्तर 3 होगा। यदि इस नए उत्तर और इसके परिशिष्ट को एक साथ जोड़ दिया जाए, तो उत्तर 5 होगा।'

फाइबोनैचि संख्याएं एक विशेष अनुक्रम हैं जहां पहला मान 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

O(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 फाइबोनैचि संख्याओं का उत्पादन करने के लिए पायथन फ़ंक्शन है:

डीईएफ़ फाइबोनैकी ( एन ) :
गिरफ्तारी = [ 0 ] * ( एन )
आगमन [ 1 ] = 1
के लिये मैं में सीमा ( दो , एन ) :
आगमन [ मैं ] = गिरफ्तार [ मैं - 1 ] + गिरफ्तार [ मैं - दो ]
वापसी आगमन

यह n तत्वों की एक सरणी बनाकर शुरू होता है, सभी को शून्य से आरंभ किया जाता है। यह सरणी फाइबोनैचि संख्याओं को धारण करेगी। पहली फाइबोनैचि संख्या, 0, पहले से ही मौजूद है। दूसरा फाइबोनैचि संख्या, 1, अगले कथन (फ़ंक्शन में) द्वारा निर्दिष्ट किया गया है। फिर फॉर-लूप है, जो इंडेक्स 2 से n से ठीक पहले शुरू होता है। इसमें कथन है:

आगमन [ मैं ] = गिरफ्तार [ मैं - 1 ] + गिरफ्तार [ मैं - दो ]

यह तत्काल पिछले दो नंबर जोड़ता है।

फ़ंक्शन को कॉल करने और पहले बारह फाइबोनैचि संख्याओं को प्रिंट करने के लिए कोड हो सकता है:

एन = 12
ए = फाइबोनैचि (एन)
मैं सीमा में (एन) के लिए:
प्रिंट (ए [i], अंत = '' ')
प्रिंट ()

आउटपुट है:

0 1 1 दो 3 5 8 13 इक्कीस 3. 4 55 89

लगातार समय में एक फाइबोनैचि संख्या का निर्माण

एक गणितीय सूत्र है जो एक शून्य-आधारित सूचकांक को उसके संबंधित फाइबोनैचि संख्या से जोड़ता है। सूत्र है:

ध्यान दें कि समीकरण के दायीं ओर, यह 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 इस सूत्र में एक शून्य-आधारित सूचकांक है।

इस सूत्र के लिए पायथन कोड है:

आयात गणित

डीईएफ़ फ़ाइबनो ( एन ) :
एफआईबीएन = ( ( ( 1 +math.sqrt ( 5 ) ) / दो ) ** एन - ( ( 1 -गणित वर्ग ( 5 ) ) / दो ) ** एन ) / गणित.वर्ग ( 5 )
वापसी एफआईबीएन

गणित मॉड्यूल आयात किया गया था। इसमें वर्गमूल का कार्य है। ऑपरेटर, ** का उपयोग शक्ति के लिए किया जाता है। फ़ंक्शन fibNo () सीधे सूत्र को लागू करता है। फ़ाइबनो () फ़ंक्शन के लिए एक उपयुक्त कॉल और प्रिंटिंग है:

एन = 11
राइट = फ़ाइबनो (एन)
प्रिंट (सेवानिवृत्त)

आउटपुट है:

89.00000000000003

उत्तर से अनावश्यक दशमलव अंकों को हटाना संभव है। हालाँकि, यह कुछ और समय के लिए चर्चा है।

यदि अलग-अलग एन इंडेक्स के लिए अलग-अलग फाइबोनैचि संख्याओं की आवश्यकता होती है, तो प्रत्येक एन इंडेक्स के लिए अलग-अलग संबंधित फाइबोनैचि संख्याओं को वापस करने के लिए फ़ंक्शन fibNo() को एक बार कॉल करना होगा। निम्न प्रोग्राम शून्य-आधारित अनुक्रमणिका, 7 से 9 (समावेशी) के लिए ऐसा करता है:

आयात गणित

डीईएफ़ फ़ाइबनो ( एन ) :
एफआईबीएन = ( ( ( 1 +math.sqrt ( 5 ) ) / दो ) ** एन - ( ( 1 -गणित वर्ग ( 5 ) ) / दो ) ** एन ) / गणित.वर्ग ( 5 )
वापसी एफआईबीएन

के लिये मैं में सीमा ( 7 , 10 ) :
प्रिंट ( फाइबनो ( मैं ) , समाप्त = '' )
प्रिंट ( )

आउटपुट है:

13,00000000000002 21,0000000000004 34,00000000000001

ध्यान दें कि जिस तरह से फॉर-लूप को पायथन में कोडित किया गया है। पहला इंडेक्स 7 है। अगला इंडेक्स 8 है, और आखिरी इंडेक्स 9 है। 10 रेंज तर्क में 9 + 1 है। 10 की स्थिति में मान अंतिम शून्य-आधारित इंडेक्स प्लस 1 होना चाहिए। पहला तर्क, 7, प्रारंभ शून्य-आधारित अनुक्रमणिका है।

निष्कर्ष

फाइबोनैचि संख्याएं पूर्ण संख्याओं (सकारात्मक पूर्णांक) का एक विशेष क्रम है। यह 0 से शुरू होता है, उसके बाद 1 बिना शर्त। शेष संख्याएँ वहाँ से तत्काल पिछली दो संख्याओं को जोड़कर विकसित की जाती हैं।

पहले n फाइबोनैचि संख्याएं प्राप्त करने के लिए, 0 और 1 को पहले दो के रूप में स्वीकार करें, फिर बाकी के लिए, एक कथन के साथ फॉर-लूप का उपयोग करें जैसे:

आगमन [ मैं ] = गिरफ्तार [ मैं - 1 ] + गिरफ्तार [ मैं - दो ]

जो तत्काल पिछली दो संख्याओं को जोड़ता है।

शून्य-आधारित सूचकांक n से केवल एक फाइबोनैचि संख्या प्राप्त करने के लिए, सूत्र का उपयोग करें: