ఫైబొనాక్సీ సంఖ్యలు ఒక నిర్దిష్ట శ్రేణి, ఇక్కడ మొదటి విలువ 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 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 కంటే ముందు వరకు ప్రారంభమవుతుంది. ఇది ప్రకటనను కలిగి ఉంది: ఇది తక్షణ మునుపటి రెండు సంఖ్యలను జోడిస్తుంది. ఫంక్షన్కి కాల్ చేయడానికి మరియు మొదటి పన్నెండు ఫైబొనాక్సీ నంబర్లను ప్రింట్ చేయడానికి కోడ్ ఇలా ఉండవచ్చు: N = 12 అవుట్పుట్: సున్నా-ఆధారిత సూచిక దాని సంబంధిత ఫైబొనాక్సీ సంఖ్యకు సంబంధించిన గణిత సూత్రం ఉంది. సూత్రం: సమీకరణం యొక్క కుడి వైపున, అది పవర్ 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() ఫంక్షన్ సూత్రాన్ని నేరుగా అమలు చేస్తుంది. fibNo() ఫంక్షన్ కోసం తగిన కాల్ మరియు ప్రింటింగ్: N = 11 అవుట్పుట్: సమాధానం నుండి అనవసరమైన దశాంశ అంకెలను తొలగించడం సాధ్యమవుతుంది. అయితే, అది మరికొంత కాలం చర్చ. వేర్వేరు n సూచికలకు వేర్వేరు ఫైబొనాక్సీ సంఖ్యలు అవసరమైతే, వివిధ సంబంధిత ఫైబొనాక్సీ సంఖ్యలను తిరిగి ఇవ్వడానికి fibNo() ఫంక్షన్ని n ఇండెక్స్లో ఒక్కోసారి కాల్ చేయాలి. కింది ప్రోగ్రామ్ సున్నా-ఆధారిత సూచికల కోసం దీన్ని చేస్తుంది, 7 నుండి 9 (కలిసి) : గణితాన్ని దిగుమతి చేయండి అవుట్పుట్: పైథాన్లో ఫర్-లూప్ కోడ్ చేయబడిన విధానాన్ని గమనించండి. మొదటి సూచిక 7. తదుపరి సూచిక 8, మరియు చివరి సూచిక 9. శ్రేణి ఆర్గ్యుమెంట్లో చివరి సూచిక 9 వాదన, 7, ప్రారంభ సున్నా-ఆధారిత సూచిక. ఫైబొనాక్సీ సంఖ్యలు పూర్ణ సంఖ్యల (సానుకూల పూర్ణాంకాలు) యొక్క నిర్దిష్ట క్రమం. ఇది 0తో ప్రారంభమవుతుంది, తర్వాత 1 షరతులు లేకుండా. మిగిలిన సంఖ్యలు వెంటనే మునుపటి రెండు సంఖ్యలను జోడించడం ద్వారా అభివృద్ధి చేయబడ్డాయి. మొదటి n ఫైబొనాక్సీ సంఖ్యలను పొందేందుకు, 0 మరియు 1ని మొదటి రెండుగా అంగీకరించండి, తర్వాత మిగిలిన వాటి కోసం, వంటి స్టేట్మెంట్తో లూప్ని ఉపయోగించండి: ఇది తక్షణ మునుపటి రెండు సంఖ్యలను జోడిస్తుంది. సున్నా-ఆధారిత సూచిక n నుండి కేవలం ఒక ఫైబొనాక్సీ సంఖ్యను పొందేందుకు, సూత్రాన్ని ఉపయోగించండి:
O(n) సమయంలో ఫైబొనాక్సీ సంఖ్యలను ఉత్పత్తి చేయడం
arr = [ 0 ] * ( n )
అరె [ 1 ] = 1
కోసం i లో పరిధి ( రెండు , n ) :
అరె [ i ] = అరె [ నేను - 1 ] + అర్ [ నేను - రెండు ]
తిరిగి అరె
A = ఫైబొనాక్సీ(N)
నేను పరిధిలో (N):
ప్రింట్ (A[i], ముగింపు=' ')
ముద్రణ() స్థిరమైన సమయంలో ఒక ఫైబొనాక్సీ సంఖ్యను ఉత్పత్తి చేస్తోంది
FibN = ( ( ( 1 +math.sqrt ( 5 ) ) / రెండు ) ** n - ( ( 1 -math.sqrt ( 5 ) ) / రెండు ) ** n ) / math.sqrt ( 5 )
తిరిగి FibN
కుడి = fibNo(N)
ప్రింట్ (రెట్)
FibN = ( ( ( 1 +math.sqrt ( 5 ) ) / రెండు ) ** n - ( ( 1 -math.sqrt ( 5 ) ) / రెండు ) ** n ) / math.sqrt ( 5 )
తిరిగి FibN
కోసం i లో పరిధి ( 7 , 10 ) :
ముద్రణ ( fibNo ( i ) , ముగింపు = '' )
ముద్రణ ( )
ముగింపు