Implementazione della sequenza di Fibonacci in Python

Pubblicato: 2023-02-23

Python è un linguaggio di programmazione multiuso potente e versatile che facilita l'implementazione di reti neurali artificiali e supporta l'elaborazione del linguaggio naturale, l'apprendimento approfondito, il riconoscimento facciale, gli algoritmi genetici e molte altre attività basate sull'IA all'avanguardia.

Questo articolo esplora alcuni dei modi principali in cui Python può essere utilizzato per generare accuratamente la sequenza di Fibonacci, un ottimo esempio di algoritmi relativamente semplici che non sono solo utili in sé e per sé, ma sono spesso fondamentali per la costruzione di programmi avanzati in grado di eseguire operazioni complesse. funzionalità cognitive.

Sommario

Cos'è la sequenza di Fibonacci?

La sequenza di Fibonacci è forse tra le più semplici, le più antiche conosciute e le più famose sequenze matematiche conosciute dall'umanità.

È una serie continua di numeri interi, dove ogni numero successivo è uguale alla somma dei suoi due numeri precedenti La serie di Fibonacci inizia con 0 e 1 e procede come segue: 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 e così via.

Con zero come punto di partenza, la sequenza di Fibonacci si estende indefinitamente in modo bidirezionale come segue:
…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... La sequenza a sinistra dello zero è nota come sequenza "negafibonacci".

Dai un'occhiata ai nostri corsi di tecnologia gratuiti per avere un vantaggio sulla concorrenza.

La sequenza di Fibonacci può essere rappresentata matematicamente come segue:

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

Dove n è il numero del termine e x n è il valore del termine. La formula per calcolare il valore del termine x n è:
x n = x n-1 + x n-2

Quindi, il valore del termine numero 8 per esempio è:

x 8 = x 7 + x 6

x 8 = 13 + 8

x 8 = 21

Ecco un po' di curiosità relative alla sequenza di Fibonacci: il giorno di Fibonacci si osserva il 23 novembre, poiché la data può essere rappresentata dalle cifre 1, 1, 2 e 3, che rappresentano un segmento correttamente sequenziato della serie di numeri di Fibonacci.

Esplora i nostri famosi corsi di ingegneria del software

Master of Science in Computer Science presso LJMU e IIITB Programma di certificazione della sicurezza informatica Caltech CTME
Bootcamp di sviluppo completo dello stack Programma PG in Blockchain
Programma Executive PG in sviluppo Full Stack
Visualizza tutti i nostri corsi di seguito
Corsi di ingegneria del software

Storia e origini della sequenza di Fibonacci

Leonardo Pisano Bogollo, popolarmente noto come Fibonacci, che nel linguaggio colloquiale italiano si traduce approssimativamente in "figlio di Bonacci".

A Fibonacci fu attribuita la formulazione di questa speciale sequenza di numeri, che - di conseguenza - prese il suo nome. Lo introdusse in gran parte dell'Europa occidentale all'inizio del XIII secolo d.C. tramite il suo libro fondamentale:Liber Abaci.

Ampiamente considerato tra i più talentuosi matematici del suo tempo, Fibonacci è stato, per inciso, anche accreditato della diffusa adozione dei numeri arabo-indù in tutta Europa, che fino ad allora utilizzava i numeri romani molto più ingombranti.

Tuttavia, quella che oggi viene chiamata sequenza di Fibonacci, è ormai nota per essere stata utilizzata nell'antica India già nel III secolo a.C.

Ha trovato espressione nei Pingala-sutra, un antico trattato di prosodia sanscrita, così come nel Natya Shastra, un trattato sulle antiche arti performative indiane, attribuito rispettivamente ai venerati saggi dell'antica India, Acharya Pingala e Bharata Muni.

Il commento più definitivo sulla sequenza appare nell'opera di Virahanka all'inizio dell'VIII secolo d.C. Sebbene questo testo stesso non sia stato rintracciato, è stato citato e ampiamente citato nell'opera di Gopala nel 1135 d.C. Per coincidenza, le cifre di quell'anno rappresentano una sequenza consecutiva di numeri di Fibonacci.

Si ritiene che un altro studioso indiano del ritmo metrico, Acharya Hemachandra, avesse una conoscenza intima della sequenza, che descrisse in modo molto dettagliato nel 1150 d.C. Questo precede il lavoro di Fibonacci di oltre 50 anni.

Dai un'occhiata ai corsi di sviluppo software di upGrad

Formula di Binet

Come tutte le sequenze ricorsive costanti con coefficienti costanti, i numeri di Fibonacci possono essere mostrati come un'espressione in forma chiusa che è diventata nota come formula di Binet. Prende il nome da Jacques Philippe Marie Binet, un eminente matematico francese dell'inizio del XIX secolo, la Formula di Binet può essere rappresentata come segue:

Dato che F n è l'ennesimo numero di Fibonacci:

Ciò che si può dedurre dalla formula di cui sopra è il fatto che, escludendo i primi pochi numeri, il rapporto tra ogni coppia consecutiva di numeri nella serie di Fibonacci converge progressivamente su quello che viene definito il rapporto aureo - 1:1.618, indicato dal 21° lettera dell'alfabeto greco – Φ (phi).

Ciò significa che ogni numero della serie è 0,6180339887 del numero di Fibonacci che lo segue OPPURE che ogni numero successivo è 1,6180339887 volte il numero che lo precede nella sequenza di Fibonacci.

Competenze di sviluppo software richieste

Corsi JavaScript Corsi Java di base Corsi di strutture dati
Corsi Node.js Corsi SQL Corsi di sviluppo full stack
Corsi NFT Corsi DevOps Corsi sui Big Data
Corsi React.js Corsi di sicurezza informatica Corsi di cloud computing
Corsi di progettazione di database Corsi Python Corsi di criptovaluta

La sequenza di Fibonacci e il rapporto aureo

L'importanza della sequenza di Fibonacci e del suo derivato, il rapporto aureo, è significativamente accresciuta a causa della sua stranamente frequente ricorrenza in natura. Alcuni degli esempi più comuni di questo includono:

  • Il numero di petali su un fiore è quasi invariabilmente un numero di Fibonacci, che si tratti del giglio a 3 petali, del ranuncolo a 5 petali, del fiore di cicoria a 21 petali o della margherita a 34 petali.
    Curiosamente, questa fedele conformità ai numeri di Fibonacci sembra essere un prodotto del design darwiniano, poiché gli scienziati hanno scoperto che queste particolari disposizioni dei petali assicurano che ognuno di questi fiori ottenga un'esposizione ottimale alla luce solare, all'umidità e agli agenti di impollinazione come uccelli e insetti. .
  • La sezione aurea o Φ si vede in quasi tutti i modelli a spirale presenti in natura: dalle teste dei semi di un girasole a intere galassie, dalle protuberanze su una pigna agli uragani, dalle spine su un ananas alla curvatura delle corna di una capra e dai fiori di un cavolfiore ai vortici su un'impronta umana.
    Il motivo a spirale di una conchiglia di nautilus è considerato una rappresentazione particolarmente iconica di quella che viene chiamata la ''Spirale di Fibonacci''.
  • La ramificazione degli alberi e degli apparati radicali, il rapporto tra api maschi e femmine in un alveare, varie parti del corpo degli animali - dai microbi alle lumache, dalle tartarughe alle balene, sono tutti conformi alla sezione aurea.
  • Aspetti della fisiologia umana - il rapporto tra la nostra lunghezza complessiva del corpo e la distanza dalla nostra testa alla punta delle dita, per esempio, o il rapporto tra la lunghezza dei nostri avambracci e le nostre mani, sono tutti progettati secondo Φ.
    La coclea nell'orecchio umano è una spirale di Fibonacci, così come il cordone ombelicale. Si ritiene addirittura che siamo inconsciamente attratti da volti le cui proporzioni tra altezza e larghezza si avvicinano al rapporto aureo.

Nella sua essenza, la matematica è una ricerca per scoprire schemi in tutte le cose. Non c'è arena migliore o più pervasiva in cui cercare questi schemi che nel grembo di madre natura.

Dai microrganismi alle galassie, la Sequenza di Fibonacci si riflette in una vasta gamma di fisiologia naturale e fenomeni, dalla scala microscopica a quella cosmica, e con buone ragioni.

La Sezione Aurea o Φ conferisce un equilibrio ergonomico di armonia estetica e funzionale a tutto ciò in cui trova espressione. È per questo motivo che la Sezione Aurea viene anche chiamata Proporzione Divina.

Ma il significato della sequenza di Fibonacci si estende ben oltre il mondo naturale, trovando espressione in una vasta gamma di attività umane, attraverso la matematica, le scienze e le arti.

Leggi i nostri articoli popolari relativi allo sviluppo software

Come implementare l'astrazione dei dati in Java? Cos'è la classe interna in Java? Identificatori Java: definizione, sintassi ed esempi
Comprensione dell'incapsulamento in OOPS con esempi Spiegazione degli argomenti della riga di comando in C Le 10 principali funzionalità e caratteristiche del cloud computing nel 2022
Polimorfismo in Java: concetti, tipi, caratteristiche ed esempi Pacchetti in Java e come usarli? Tutorial Git per principianti: impara Git da zero

Generazione della sequenza di Fibonacci usando Python

La sequenza di Fibonacci e il rapporto aureo sono parte integrante di vari aspetti di:

  • Algebra, geometria, statistica e trigonometria - che possono essere applicate a varie pratiche economiche e all'analisi del mercato azionario.
  • Biologia, fisica e informatica - che trova applicazione nella biologia sintetica e nella genetica, nell'ingegneria civile e meccanica, nell'architettura, nell'interior design e, naturalmente, nella programmazione di computer.
  • Arte e graphic design così come poesia, musica e danza

Spesso è un passaggio fondamentale nella creazione di un'ampia varietà di applicazioni utili legate agli argomenti di cui sopra e oltre.

La sequenza di Fibonacci può essere generata utilizzando un'ampia varietà di linguaggi di programmazione. Come affermato in precedenza, Python è uno dei più potenti e versatili di questi, in grado di utilizzare e manipolare i numeri di Fibonacci e la sequenza di Fibonacci in vari modi per sviluppare alcune delle soluzioni tecnologiche più all'avanguardia.

Dai un'occhiata al programmatore di certificati avanzati di upGrad in Blockchain da IIIT Bangalore

Ecco alcuni dei metodi con cui Python può essere utilizzato per generare la sequenza di Fibonacci:

Approccio iterativo

In questo metodo, l'algoritmo :

  • Assegna due variabili qualsiasi per rappresentare i due termini consecutivi iniziali all'interno della sequenza. Dove 0 rappresenta il primo termine della sequenza e 1 rappresenta il secondo.
  • Imposta l'intervallo desiderato di termini da calcolare nella sequenza e nel ciclo da 0 in su.
  • Ad ogni iterazione, l'algoritmo:
    • Somma le due variabili.
    • Quindi assegna il valore della seconda variabile alla prima variabile
      e la somma delle due variabili precedenti alla seconda variabile.
    • E così via…

Il codice corrispondente dovrebbe essere scritto come segue :

def fibo (num) :

un = 0

b = 1

per i in xrange(0, 20):

stampa A

a, b = b, a + b

L'output corrispondente sarebbe i primi venti numeri della sequenza di Fibonacci :

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

Approccio ricorsivo

In questo metodo, l'algoritmo deriva :

Il valore di ogni termine successivo sommando il valore dei due termini precedenti. Questo può essere rappresentato come termine n = termine n-1 + termine n-2.

Le uniche due eccezioni a questa regola sono quando il valore dei termini è 0 e 1, che restituiscono entrambi valori invariati. Queste eccezioni possono essere rappresentate come termine n = termine n.

Il codice corrispondente dovrebbe essere scritto come segue :

def ricorre_fodo (n):

se n < = 1:

ritorno nm

altro:

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

Nterm = 20

# controlla se il numero di termini è valido

se nerms <= 0:

stampa ("Inserisci un numero intero positivo")

altro:

stampa ("Sequenza di Fibonacci")

Per i nell'intervallo (nterms):

Stampa (recur_fibo i))

L'output corrispondente sarebbe i primi venti numeri della sequenza di Fibonacci :

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

Alcune applicazioni autonome della sequenza di Fibonacci

Oltre ad essere un passo fondamentale nello sviluppo di vari modelli e applicazioni complessi, i numeri di Fibonacci, in sé e per sé, possiedono alcune caratteristiche uniche che li rendono inestimabili nell'esecuzione di determinati compiti:

  • I numeri di Fibonacci possono essere utilizzati per analizzare il tempo di esecuzione computazionale dell'algoritmo di Euclide per identificare il più grande divisore comune di una coppia casuale di numeri interi, dato che una coppia di numeri di Fibonacci successivi presenta tipicamente la sfida più severa per questo algoritmo.
  • I numeri di Fibonacci rappresentano in modo univoco una sequenza completa, in modo tale che ogni numero intero positivo nella serie sia la somma di due numeri di Fibonacci, ognuno dei quali può essere utilizzato solo una volta.
  • Algoritmi basati sui numeri di Fibonacci hanno contribuito allo sviluppo della tecnica di ricerca di Fibonacci, della struttura dei dati dell'heap di Fibonacci e dei grafi del cubo di Fibonacci utilizzati per collegare sistemi paralleli e distribuiti.
  • I numeri di Fibonacci vengono utilizzati nello scrum poker, una tecnica gamificata e basata sul consenso per stimare gli obiettivi di sviluppo nello sviluppo del software.
  • Il ritracciamento dei livelli di Fibonacci è comunemente usato nell'analisi tecnica per il trading in borsa.

Insomma

Nel corso di questo articolo, abbiamo tentato di stuzzicare il vostro interesse per la sequenza di Fibonacci o la sezione aurea - le sue caratteristiche chiave e la sua ricorrenza sorprendentemente frequente nel mondo naturale - sia animato che inanimato.

Abbiamo cercato di catturare l'impatto e ricreare la meraviglia che questo fenomeno matematico ha creato attraverso una gamma ampiamente divergente e multidimensionale di attività umane: le arti e le scienze, l'ingegneria e la tecnologia, l'anatomia e la genetica, l'economia e la finanza... e molto altro ancora .

Abbiamo tentato di dare vita a come un linguaggio di programmazione estremamente versatile chiamato Python può aiutarti a manipolare questi concetti matematici a beneficio dell'umanità in modi inaspettatamente diversi, sia direttamente che indirettamente.

È nostra fervida speranza che questa potente combinazione di Python e la sequenza di Fibonacci abbia e continuerà a catturare la tua immaginazione, accendere le tue menti, alimentare le tue aspirazioni e ispirarti verso le più alte vette di realizzazione. Buona programmazione! Buon sogno!

In upGrad, comprendiamo l'importanza dell'apprendimento pratico e pratico, specialmente quando si tratta di sviluppo software. Di conseguenza, i nostri corsi e iniziative di formazione hanno al centro la praticità. Una di queste iniziative è Full Stack Development Bootcamp , che ti aiuterà a sviluppare tutte le competenze necessarie per eccellere nello sviluppo full-stack.

Vuoi condividere questo articolo?

Pianifica ora la tua carriera nello sviluppo software!

Candidati per la laurea magistrale in Informatica