పైథాన్ భాషలో ఫైబొనాక్సీ సంఖ్యలు

Paithan Bhasalo Phaibonaksi Sankhyalu



“0ని 1కి జోడిస్తే, సమాధానం 1 అవుతుంది. సమాధానం 1 మరియు యాడెండ్ (ఆగేండ్ కాదు) కలిపితే, కొత్త సమాధానం 2 అవుతుంది. ఈ కొత్త సమాధానం మరియు దాని జోడింపు కలిపితే, సమాధానం 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 సున్నా-ఆధారిత 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 ఫైబొనాక్సీ సంఖ్యలను ఉత్పత్తి చేసే పైథాన్ ఫంక్షన్:

డెఫ్ ఫైబొనాక్సీ ( n ) :
arr = [ 0 ] * ( n )
అరె [ 1 ] = 1
కోసం i లో పరిధి ( రెండు , n ) :
అరె [ i ] = అరె [ నేను - 1 ] + అర్ [ నేను - రెండు ]
తిరిగి అరె

ఇది n మూలకాల శ్రేణిని సృష్టించడం ద్వారా ప్రారంభమవుతుంది, అన్నీ సున్నాలకు ప్రారంభించబడతాయి. ఈ శ్రేణి ఫైబొనాక్సీ సంఖ్యలను కలిగి ఉంటుంది. మొదటి ఫిబొనాక్సీ సంఖ్య, 0, ఇప్పటికే ఉంది. రెండవ ఫైబొనాక్సీ సంఖ్య, 1, తదుపరి ప్రకటన (ఫంక్షన్‌లో) ద్వారా కేటాయించబడుతుంది. తర్వాత ఫర్-లూప్ ఉంది, ఇది ఇండెక్స్ 2 నుండి n కంటే ముందు వరకు ప్రారంభమవుతుంది. ఇది ప్రకటనను కలిగి ఉంది:

అరె [ i ] = అరె [ నేను - 1 ] + అర్ [ నేను - రెండు ]

ఇది తక్షణ మునుపటి రెండు సంఖ్యలను జోడిస్తుంది.

ఫంక్షన్‌కి కాల్ చేయడానికి మరియు మొదటి పన్నెండు ఫైబొనాక్సీ నంబర్‌లను ప్రింట్ చేయడానికి కోడ్ ఇలా ఉండవచ్చు:

N = 12
A = ఫైబొనాక్సీ(N)
నేను పరిధిలో (N):
ప్రింట్ (A[i], ముగింపు=' ')
ముద్రణ()

అవుట్‌పుట్:

0 1 1 రెండు 3 5 8 13 ఇరవై ఒకటి 3. 4 55 89

స్థిరమైన సమయంలో ఒక ఫైబొనాక్సీ సంఖ్యను ఉత్పత్తి చేస్తోంది

సున్నా-ఆధారిత సూచిక దాని సంబంధిత ఫైబొనాక్సీ సంఖ్యకు సంబంధించిన గణిత సూత్రం ఉంది. సూత్రం:

సమీకరణం యొక్క కుడి వైపున, అది పవర్ nకి పెంచబడిన 5 యొక్క వర్గమూలం కాదని గమనించండి; ఇది కుండలీకరణాల్లోని వ్యక్తీకరణ శక్తి nకి పెంచబడుతుంది. అలాంటి రెండు వ్యక్తీకరణలు ఉన్నాయి.

n 0 అయితే, Fibn 0 అవుతుంది. n 1 అయితే, Fib n 1 అవుతుంది. n 2 అయితే, Fib n 1 అవుతుంది. n 3 అయితే, Fib n 2 అవుతుంది. n 4 అయితే, Fib n 3 ఉంటుంది - మరియు మొదలైనవి. రీడర్ ఈ ఫార్ములాను n కోసం వివిధ విలువలను ప్రత్యామ్నాయం చేయడం మరియు మూల్యాంకనం చేయడం ద్వారా గణితశాస్త్రంలో ధృవీకరించవచ్చు. n అనేది ఈ ఫార్ములాలో సున్నా-ఆధారిత సూచిక.

ఈ ఫార్ములా కోసం పైథాన్ కోడ్:

గణితాన్ని దిగుమతి చేయండి

డెఫ్ fibNo ( n ) :
FibN = ( ( ( 1 +math.sqrt ( 5 ) ) / రెండు ) ** n - ( ( 1 -math.sqrt ( 5 ) ) / రెండు ) ** n ) / math.sqrt ( 5 )
తిరిగి FibN

గణిత మాడ్యూల్ దిగుమతి చేయబడింది. ఇది వర్గమూలం ఫంక్షన్‌ను కలిగి ఉంది. ఆపరేటర్, ** పవర్ కోసం ఉపయోగించబడుతుంది. fibNo() ఫంక్షన్ సూత్రాన్ని నేరుగా అమలు చేస్తుంది. fibNo() ఫంక్షన్ కోసం తగిన కాల్ మరియు ప్రింటింగ్:

N = 11
కుడి = fibNo(N)
ప్రింట్ (రెట్)

అవుట్‌పుట్:

89.00000000000003

సమాధానం నుండి అనవసరమైన దశాంశ అంకెలను తొలగించడం సాధ్యమవుతుంది. అయితే, అది మరికొంత కాలం చర్చ.

వేర్వేరు n సూచికలకు వేర్వేరు ఫైబొనాక్సీ సంఖ్యలు అవసరమైతే, వివిధ సంబంధిత ఫైబొనాక్సీ సంఖ్యలను తిరిగి ఇవ్వడానికి fibNo() ఫంక్షన్‌ని n ఇండెక్స్‌లో ఒక్కోసారి కాల్ చేయాలి. కింది ప్రోగ్రామ్ సున్నా-ఆధారిత సూచికల కోసం దీన్ని చేస్తుంది, 7 నుండి 9 (కలిసి) :

గణితాన్ని దిగుమతి చేయండి

డెఫ్ fibNo ( n ) :
FibN = ( ( ( 1 +math.sqrt ( 5 ) ) / రెండు ) ** n - ( ( 1 -math.sqrt ( 5 ) ) / రెండు ) ** n ) / math.sqrt ( 5 )
తిరిగి FibN

కోసం i లో పరిధి ( 7 , 10 ) :
ముద్రణ ( fibNo ( i ) , ముగింపు = '' )
ముద్రణ ( )

అవుట్‌పుట్:

13,00000000000002 21,00000000000004 34,00000000000001

పైథాన్‌లో ఫర్-లూప్ కోడ్ చేయబడిన విధానాన్ని గమనించండి. మొదటి సూచిక 7. తదుపరి సూచిక 8, మరియు చివరి సూచిక 9. శ్రేణి ఆర్గ్యుమెంట్‌లో చివరి సూచిక 9 వాదన, 7, ప్రారంభ సున్నా-ఆధారిత సూచిక.

ముగింపు

ఫైబొనాక్సీ సంఖ్యలు పూర్ణ సంఖ్యల (సానుకూల పూర్ణాంకాలు) యొక్క నిర్దిష్ట క్రమం. ఇది 0తో ప్రారంభమవుతుంది, తర్వాత 1 షరతులు లేకుండా. మిగిలిన సంఖ్యలు వెంటనే మునుపటి రెండు సంఖ్యలను జోడించడం ద్వారా అభివృద్ధి చేయబడ్డాయి.

మొదటి n ఫైబొనాక్సీ సంఖ్యలను పొందేందుకు, 0 మరియు 1ని మొదటి రెండుగా అంగీకరించండి, తర్వాత మిగిలిన వాటి కోసం, వంటి స్టేట్‌మెంట్‌తో లూప్‌ని ఉపయోగించండి:

అరె [ i ] = అరె [ నేను - 1 ] + అర్ [ నేను - రెండు ]

ఇది తక్షణ మునుపటి రెండు సంఖ్యలను జోడిస్తుంది.

సున్నా-ఆధారిత సూచిక n నుండి కేవలం ఒక ఫైబొనాక్సీ సంఖ్యను పొందేందుకు, సూత్రాన్ని ఉపయోగించండి: