Implementarea secvenței Fibonacci în Python

Publicat: 2023-02-23

Python este un limbaj de programare multifuncțional puternic și versatil care facilitează implementarea rețelelor neuronale artificiale și acceptă procesarea limbajului natural, învățarea profundă, recunoașterea facială, algoritmi genetici și multe altele asemenea sarcini de ultimă generație bazate pe inteligență artificială.

Acest articol explorează câteva dintre principalele moduri în care Python poate fi utilizat pentru a genera cu acuratețe secvența Fibonacci – un exemplu excelent de algoritmi relativ simpli care nu sunt numai utili în sine, dar sunt adesea fundamentale pentru construirea de programe avansate capabile de complexe. funcționalități cognitive.

Cuprins

Ce este succesiunea Fibonacci?

Secvența Fibonacci este probabil printre cele mai simple, cele mai vechi cunoscute și cele mai faimoase dintre secvențele matematice cunoscute de omenire.

Este o serie continuă de numere întregi, în care fiecare număr succesiv este egal cu suma celor două numere precedente. Seria Fibonacci începe cu 0 și 1 și continuă după cum urmează: 0, 1, 1, 2, 3, 5, 8, 13 , 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368 și așa mai departe.

Cu zero ca punct de plecare, Secvența Fibonacci se extinde la nesfârșit într-o manieră bidirecțională, după cum urmează:
…610, -377, 233, -144, 89, -55, 34, -21, 13, -8, 5, -3, 2, -1, 1, 0 , 1, 1, 2, 3, 5 , 8, 13, 21, 34, 55, 89, 144, 233, 377, 610... Secvența din stânga zeroului este cunoscută ca șirul „negafibonacci”.

Consultați cursurile noastre gratuite de tehnologie pentru a obține un avantaj față de concurență.

Secvența Fibonacci poate fi reprezentată matematic după cum urmează:

n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
x n 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610

Unde n este numărul termenului și x n este valoarea termenului. Formula pentru a calcula valoarea termenului x n este:
x n = x n-1 + x n-2

Deci, valoarea termenului numărul 8, de exemplu, este:

x 8 = x 7 + x 6

x 8 = 13 + 8

x 8 = 21

Iată câteva informații legate de Secvența Fibonacci: Ziua Fibonacci este sărbătorită pe 23 noiembrie, deoarece data poate fi reprezentată de cifrele 1, 1, 2 și 3 – care reprezintă un segment secvențial corect al Serii de numere Fibonacci.

Explorați cursurile noastre populare de inginerie software

Master în Informatică de la LJMU și IIITB Programul de certificat de securitate cibernetică Caltech CTME
Bootcamp de dezvoltare completă Programul PG în Blockchain
Program Executive PG în Full Stack Development
Vezi mai jos toate cursurile noastre
Cursuri de Inginerie Software

Istoria și originile secvenței Fibonacci

Leonardo Pisano Bogollo, cunoscut sub numele de Fibonacci, care în limbajul colocvial italian se traduce aproximativ prin „fiul lui Bonacci”.

Fibonacci a fost creditat cu formularea acestei secvențe speciale de numere, care – în consecință – a fost numită după el. El a introdus-o într-o mare parte a Europei de Vest la începutul secolului al XIII-lea d.Hr. prin intermediul cărții sale de referință –Liber Abaci.

Considerat pe scară largă printre cei mai talentați matematicieni ai timpului său, Fibonacci a fost, de altfel, creditat și cu adoptarea pe scară largă a cifrelor hindu-arabe în toată Europa, care până atunci folosea cifrele romane mult mai greoaie.

Cu toate acestea, ceea ce se numește astăzi Secvența Fibonacci, este acum cunoscut că a fost folosit în India antică încă din secolul al III-lea î.Hr.

Ea și-a găsit expresie în Pingala-sutre, un tratat străvechi de prozodie sanscrită, precum și în Natya Shastra, un tratat despre artele spectacolului indian antic, atribuit veneraților înțelepți din India antică, Acharya Pingala și, respectiv, Bharata Muni.

Cel mai definitiv comentariu asupra secvenței apare în lucrarea lui Virahanka la începutul secolului al VIII-lea e.n. Deși acest text în sine nu a fost urmărit, a fost menționat și citat pe larg în lucrarea lui Gopala din 1135 e.n. Întâmplător, cifrele acelui an reprezintă o succesiune consecutivă de numere Fibonacci.

Un alt savant indian al ritmului metric, Acharya Hemachandra, este reputat că a avut o cunoaștere intimă a secvenței, pe care a descris-o în detaliu în 1150 d.Hr. Aceasta este anterioară lucrării lui Fibonacci cu peste 50 de ani.

Consultați cursurile de dezvoltare software upGrad

Formula lui Binet

Ca toate secvențele constante recursive cu coeficienți constanți, numerele Fibonacci pot fi prezentate ca o expresie în formă închisă care a ajuns să fie cunoscută sub numele de formula lui Binet. Numită după Jacques Philippe Marie Binet, un matematician francez proeminent de la începutul secolului al XIX-lea, Formula lui Binet poate fi reprezentată după cum urmează:

Având în vedere că F n este al n-lea număr Fibonacci:

Ceea ce poate fi derivat din formula de mai sus este faptul că, cu excepția primelor câteva numere, raportul dintre fiecare pereche consecutivă de numere din seria Fibonacci converge progresiv spre ceea ce se numește Raportul de Aur – 1:1.618, notat cu a 21-a. litera alfabetului grec – Φ (phi).

Aceasta înseamnă că fiecare număr din serie este 0,6180339887 din numărul Fibonacci care îl urmează SAU că fiecare număr succesiv este de 1,6180339887 ori numărul care îl precede în succesiunea Fibonacci.

Abilități de dezvoltare software la cerere

Cursuri JavaScript Cursuri de bază Java Cursuri de Structuri de Date
Cursuri Node.js Cursuri SQL Cursuri de dezvoltare full stack
Cursuri NFT Cursuri DevOps Cursuri de Big Data
Cursuri React.js Cursuri de securitate cibernetică Cursuri de cloud computing
Cursuri de proiectare baze de date Cursuri Python Cursuri de criptomonede

Secvența Fibonacci și raportul de aur

Semnificația Secvenței Fibonacci și a derivatului său, raportul de aur, este semnificativ sporită datorită recurenței sale neobișnuit de frecvente în natură. Unele dintre cele mai comune exemple ale acestui lucru includ:

  • Numărul de petale de pe o floare este aproape invariabil un număr Fibonacci, fie că este vorba de Crinul cu 3 petale, Buttercup cu 5 petale, floarea de Cicoare cu 21 de petale sau Margareta cu 34 de petale.
    În mod intrigant, această conformitate fermă cu numerele Fibonacci pare să fie un produs al designului darwinian, pentru că oamenii de știință au descoperit că aceste aranjamente speciale de petale asigură o expunere optimă pentru fiecare dintre aceste flori la lumina soarelui, umiditate și agenți de polenizare, cum ar fi păsările și insectele. .
  • Raportul de aur sau Φ este observat în aproape toate modelele în spirală care apar în mod natural - de la capete de semințe ale unei floarea-soarelui la galaxii întregi, de la protuberanțe pe un con de pin la uragane, de la țepii unui ananas la curbura coarnelor unei capre și de la buchețele. a unei conopidă la spirele de pe o amprentă umană.
    Modelul spiralat al unei cochilii de nautilus este considerat o reprezentare deosebit de iconică a ceea ce se numește „Spirala Fibonacci”.
  • Ramificarea copacilor și a sistemelor de rădăcină, raportul dintre albinele masculi și femele dintr-un stup, diferite părți ale corpului animalelor - de la microbi la melci, țestoase la balene, toate se conformează raportului de aur.
  • Aspecte ale fiziologiei umane – raportul dintre lungimea totală a corpului nostru și distanța de la capul nostru la vârful degetelor, de exemplu, sau raportul dintre lungimea antebrațelor noastre și a mâinilor noastre, sunt toate proiectate în conformitate cu Φ.
    Cohleea din urechea umană este o spirală Fibonacci, la fel ca și cordonul ombilical. Se crede chiar că suntem atrași în mod subconștient de fețe ale căror proporții înălțime-lățime se apropie de Raportul de Aur.

În esența sa, Matematica este o încercare de a descoperi tipare în toate lucrurile. Nu există o arenă mai bună sau mai răspândită în care să cauți aceste tipare decât în ​​poala mamei natură.

De la microorganisme la galaxii, Secvența Fibonacci își găsește reflectarea într-o gamă copleșitoare de fiziologie naturală, precum și de fenomene, de la scară microscopică la cosmică - și pe bună dreptate.

Raportul de Aur sau Φ conferă un echilibru ergonomic de armonie estetică și funcțională tot ceea ce își găsește expresie. Din acest motiv, Raportul de Aur este denumit și Proporția Divină.

Dar semnificația Secvenței Fibonacci se extinde cu mult dincolo de lumea naturală, găsindu-și expresie într-o gamă largă de eforturi umane - în matematică, științe și arte.

Citiți articolele noastre populare legate de dezvoltarea software

Cum se implementează abstracția datelor în Java? Ce este Inner Class în Java? Identificatori Java: definiție, sintaxă și exemple
Înțelegerea încapsulării în OOPS cu exemple Argumentele liniei de comandă în C explicate Top 10 caracteristici și caracteristici ale cloud computing-ului în 2022
Polimorfismul în Java: concepte, tipuri, caracteristici și exemple Pachete în Java și cum să le folosiți? Tutorial Git pentru începători: Învață Git de la zero

Generarea secvenței Fibonacci folosind Python

Secvența Fibonacci și raportul de aur sunt parte integrantă a diferitelor aspecte ale:

  • Algebră, geometrie, statistică și trigonometrie - care pot fi aplicate la diverse practici economice și la analiza pieței de valori.
  • Biologie, fizică și informatică - care găsește aplicații în biologia sintetică și genetică, inginerie civilă și mecanică, arhitectură, design interior și, desigur, programarea computerelor.
  • Artă și design grafic, precum și poezie, muzică și dans

Este adesea un pas fundamental în crearea unei game largi de aplicații utile legate de subiectele de mai sus și nu numai.

Secvența Fibonacci poate fi generată folosind o mare varietate de limbaje de programare. După cum am menționat mai devreme, Python este unul dintre cele mai puternice și versatile dintre acestea - capabil să utilizeze și să manipuleze numerele Fibonacci și Secvența Fibonacci în mai multe moduri pentru a dezvolta unele dintre cele mai de ultimă oră soluții tehnologice.

Consultați programul avansat de certificat upGrad în Blockchain de la IIIT Bangalore

Iată câteva dintre metodele prin care Python poate fi folosit pentru a genera Secvența Fibonacci:

Abordare iterativă

În această metodă, algoritmul :

  • Atribuie oricare două variabile pentru a reprezenta primii doi termeni consecutivi din cadrul secvenței. Unde 0 reprezintă primul termen al secvenței, iar 1 reprezintă al doilea.
  • Setează intervalul dorit de termeni care urmează să fie calculati în succesiune și buclă de la 0 în sus.
  • La fiecare iterație, algoritmul:
    • Adaugă cele două variabile.
    • Apoi atribuie valoarea celei de-a doua variabile primei variabile
      iar suma celor două variabile anterioare la a doua variabilă.
    • Și așa mai departe…

Codul corespunzător ar fi scris după cum urmează :

def fibo (num) :

a = 0

b = 1

pentru i în xrange(0, 20):

imprima a

a, b = b, a + b

Ieșirea corespunzătoare ar fi primele douăzeci de numere ale șirului Fibonacci :

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
144, 233, 377, 610, 987, 1597, 2584, 4181

Abordare recursiva

În această metodă, algoritmul derivă :

Valoarea fiecărui termen succesiv prin însumarea valorii celor doi termeni precedenți. Acesta poate fi reprezentat ca termen n = termen n-1 + termen n-2.

Singurele două excepții de la această regulă sunt atunci când valoarea termenilor este 0 și 1, ambele returnând valori neschimbate. Aceste excepții pot fi reprezentate ca termen n = termen n.

Codul corespunzător ar fi scris după cum urmează :

def recur_fodo (n):

dacă n < = 1:

întoarcere n

altceva:

return (recur_fibo (n-1) + recur_fibo (n-2) )

Ntermeni = 20

# verificați dacă numărul de termeni este valid

dacă nerms <= 0:

print („Vă rugăm să introduceți un număr întreg pozitiv”)

altceva:

imprimare („secvența Fibonacci”)

Pentru i în interval (termeni):

Print (recur_fibo i))

Ieșirea corespunzătoare ar fi primele douăzeci de numere ale șirului Fibonacci :

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
144, 233, 377, 610, 987, 1597, 2584, 4181

Câteva aplicații de sine stătătoare ale Secvenței Fibonacci

Pe lângă faptul că reprezintă o etapă fundamentală în dezvoltarea diverselor modele și aplicații complexe, numerele Fibonacci, în sine, posedă unele caracteristici unice care le fac neprețuite în îndeplinirea anumitor sarcini:

  • Numerele Fibonacci pot fi folosite pentru a analiza timpul de calcul al algoritmului lui Euclid pentru a identifica cel mai mare divizor comun al unei perechi aleatoare de numere întregi, dat fiind faptul că o pereche de numere Fibonacci succesive prezintă de obicei cea mai gravă provocare pentru acest algoritm.
  • Numerele Fibonacci reprezintă în mod unic o secvență completă, astfel încât fiecare număr întreg pozitiv din serie este suma a două numere Fibonacci, oricare dintre acestea putând fi folosit o singură dată.
  • Algoritmii bazați pe numerele Fibonacci au ajutat la dezvoltarea tehnicii de căutare Fibonacci, a structurii de date Fibonacci heap și a graficelor cubului Fibonacci utilizate pentru interconectarea sistemelor paralele și distribuite.
  • Numerele Fibonacci sunt folosite în Scrum Poker – o tehnică bazată pe consens și gamificată pentru a estima obiectivele de dezvoltare în dezvoltarea de software.
  • Retracția nivelurilor Fibonacci este folosită în mod obișnuit în analiza tehnică pentru tranzacționarea pe piața de valori.

În concluzie

Pe parcursul acestui articol, am încercat să vă stârnească interesul pentru Secvența Fibonacci sau Raportul de Aur – caracteristicile sale cheie și reapariția sa uimitor de frecventă în lumea naturală – atât animată, cât și neînsuflețită.

Am încercat să surprindem impactul și să recreăm mirarea pe care acest fenomen matematic a creat-o într-o gamă larg divergentă și multidimensională de activități umane - arte și științe, inginerie și tehnologie, anatomie și genetică, economie și finanțe... și multe altele. .

Am încercat să aducem la viață modul în care un limbaj de programare extrem de versatil numit Python vă poate ajuta să manipulați aceste concepte matematice pentru a aduce beneficii omenirii în moduri neașteptat de diverse – atât direct, cât și indirect.

Speranța noastră fierbinte este că această combinație puternică de Python și Secvența Fibonacci va capta și va continua să vă capteze imaginația, să vă aprindă mințile, să vă alimenteze aspirațiile și să vă inspire către cele mai mari culmi ale realizării. Codare fericită! Vise fericite!

La upGrad, înțelegem importanța învățării practice și practice – mai ales când vine vorba de dezvoltarea de software. Drept urmare, cursurile și inițiativele noastre de formare au caracterul practic în centrul lor. O astfel de inițiativă este Full Stack Development Bootcamp , care vă va ajuta să dezvoltați toate abilitățile relevante necesare pentru a excela în dezvoltarea full-stack.

Vrei să distribui acest articol?

Planifică-ți acum cariera de dezvoltare software!

Aplicați pentru Master of Science în Informatică