[PIPython] fibonacci

Tiziano a Work tiziano
Ven 19 Nov 2004 15:16:46 CET


Penso che ti riferisci a questa

def Fibonacci (n):
  if n == 0 or n == 1:
    return 1
  else:
    return Fibonacci(n-1) + Fibonacci(n-2) 

E' una funzione ricorsiva che agisce a ritroso a partire da un numero n > 1
e che si ferma quando raggiunge n <=0.
Lo scopo è di calcolare il valore dell'ennesimo numero di fibonacci.

Se per esempio n=6, Fibonacci(6) deve restituire 8 (ogni termine della serie 
di Fibonacci è uguale alla somma dei due termini precedenti), quindi:

1, (0+1)=1, (1+1)=2, (1+2)=3, (2+3)=5, (3+5)=8

L'algoritmo affronta, come dicevo, il problema alla rovescia

Fibonacci(6) = Fibonacci(5) + Fibonacci(4)
= F(4) + F(3) + F(3) + F(2)
= F(3) + F(2) + F(2) + F(1) + F(2) + F(1) + F(1)
= F(2) + F(1) + 1 + 1 + 1 + 1 + 1 + 1 = 8

La funzione è ricorsiva, ad ogni chiamata vengono generate due nuove chiamate.
Questa crescita esponenziale di funzioni aperte termina mano a mano che n=1 o 
n=0

chiarito?

ciao
tiziano


Alle 00:39, martedì 15 giugno 2004, babo_g a tiscali.it ha scritto:
> Salve a tutti sono nuovissimo di questa mailing-list e ancora di + della
> programmazione;
>
> Sto iniziando a leggere la giuda del principiante e per ora tutto bene con
> l`unica eccezzione che non ho proprio capito il programma dei fibonacci
> qualcuno sarebbe cosi gentile da spiegarmelo..grazie mille Babo_g
>
> __________________________________________________________________
> Tiscali ADSL libera la velocita'!
> Attiva Senza Canone entro il 14 giugno: navighi a 1,5 euro l'ora per i
> primi 3 mesi,se scegli il modem e' tuo in comodato gratuito e in piu' hai
> gratis SuperMail per 12 mesi. Non aspettare, attivala subito!
> http://abbonati.tiscali.it/adsl/prodotti/640Kbps/
>
>
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.zope.it/cgi-bin/mailman/listinfo/python



More information about the Python mailing list