Lezione del 12 marzo 2008

Lezione del 12 marzo 2008
Per valutare il numero di divisione nell’algoritmo Euclideo delle divisioni successive, ci serviremo
dei numeri di Fibonacci.
La successione di Fibonacci.
La successione dei numeri di Fibonacci è la successione di numeri naturali Fn (n>0) definita
ponendo: F1=F2=1, Fn=Fn-1+Fn-2 (per ogni n>2).
Quindi F3=2; F4=3, F5=5, F6=8 etc…
Tale successione interviene in molti problemi combinatori.
Problema: trovare una formula algebrica per il calcolo del generico numero di Fibonacci Fn .
A tale scopo ricordiamo alcune classiche nozioni geometriche.
Se AB è un segmento di estremi A,B è di lunghezza a (con a reale >0), si chiama parte aurea di
AB un segmento AC (dove C è un punto interno ad AB) tale che la lunghezza x di AC sia media
proporzionale fra a e la lunghezza (a-x) del segmento CB:
a : x = x : (a-x)
e da ciò si ricava x2+ax-a2 = 0, da cui x = a(-1 5 )/2
Essendo x>0, l’unico valore accettabile è x = a(-1+ 5 )/2, da cui a/x = 2/(-1+ 5 )=( 5 +1)/21,61
(è il cosiddetto rapporto aureo o numero d’oro).
Il concetto di parte aurea di un segmento ha molte applicazioni geometriche: per esempio il lato del
decagono regolare ha la stessa lunghezza della parte aurea del raggio della circonferenza
circonscritta.
Se  indica il numero d’oro, descriviamo alcune proprietà di tale numero reale:
1) Poiché x è soluzione di x2+ax-a2 = 0, dividendo per x2 si ottiene che  = a/x soddisfa l’identità:
1 +  - 2 = 0
da cui:
2 = 1+ (*)
2) Da (*) si ricava anche:
(1-)2 = 1-2+2 = 2- (**)
Il numero d’oro ha una relazione con la successione dei numeri di Fibonacci Fn .
Calcolando le potenze di base  ad esponente naturale e confrontandole con alcuni valori di Fn,
osserviamo che:
F2=1 < 11,61 < F3=2 < 22,6 < F4=3 < 34,2 < F5=5
e si può congetturare che si abbia :
Fn+1 < n < Fn +2 (***) per ogni naturale n.
Possiamo dimostrare che ciò è vero, ragionando per induzione (IIa forma). Per n=1 abbiamo già
notato che (***) è vero.
Supponiamolo vero per tutti i k<n, e dimostriamolo vero per n; poiché (***) è per ipotesi vero in
particolare per k=(n-1), k=(n-2), si ha Fn < n -1< Fn +1 , Fn-1 < n -2< Fn , da cui, sommando, si ha:
Fn+1 = Fn+Fn-1 < n –1 + n –2 < Fn+1+Fn = Fn+2
Ma dalla (**) segue che:
n –1 + n –2 = n –2(1+) = n
quindi la (***) é vera per n.
Dimostriamo ora la seguente formula algebrica per il calcolo del generico numero di Fibonacci:
Fn = [n – (1-)n]/ 5
per ogni naturale n.
Ragioniamo di nuovo per induzione (IIa forma). Per n=1 si ha:
[ – (1-)]/ 5 = (2-1) / 5 = 1 = F1
Supponiamolo vero per ogni k<n e dimostriamolo per n; poiché è vero in particolare per k=(n-1),
k=(n-2), si ha:
Fn-1 = [n-1 – (1-)n-1]/ 5 , Fn-2 = [n-2 – (1-)n-2]/ 5
e sommando si ottiene (tenendo conto di (*) e (**)):
Fn-1 + Fn-2 = Fn = [n-2(1+) - (1-)n-2(2-)]/ 5 = [n – (1-)n]/ 5
come si voleva.
Dimostreremo ora che, dati 2 numeri naturali a,b con a>b, il numero di divisioni effettuate
nell’algoritmo Euclideo per il calcolo del mcd(a,b) è  loga (parte intera di loga), e inoltre il
caso peggiore è proprio loga, nel senso che per opportune scelte dei valori di a,b il numero delle
divisioni coincide esattamente con loga .
Siano a,b numeri naturali, con a>b. Effettuiamo le n divisioni successive dell’algoritmo Euclideo:
a=bq1+r1 (q10, 0<r1<b)
b=r1q2+r2 (q20, 0<r2<r1)
r1=r2q3+r3 (q30, 0<r3<r2)
.
.
.
rn-3=rn-2qn-1+rn-1 (qn-10, 0<rn-1<rn-2)
rn-2=rn-1qn+rn (qn0, rn=0)
rn-1=mcd(a,b)
Per costruzione si ha:
a > b > r1 > r2 > …….. > rn-1 > 0=rn
Osserviamo che tutti i quozienti qi sono >0: se fosse q1=0, si avrebbe a=r1<b (contraddizione); se
fosse q2=0, si avrebbe b=r2<r1<b (contraddizione) etc….
Poniamo per omogeneità r0=b (in modo che la prima divisione sia a=r0q1+r1 e la seconda sia
r0=r1q2+r2) e dimostriamo che si ha:
rn-j  Fj+1
per ogni j=1,2,…,n
Ragioniamo per induzione (IIa forma).
Per j=1 si ha (essendo rn-1>0) : rn-1  F2 = 1.
Supponiamolo vero per tutti i k<j, e dimostriamolo vero per j.
Essendo vero in particolare per k=j-1, k=j-2, si ha:
rn-j+1  Fj , rn-j+2  Fj-1
Ricavando il resto rn-j dalla divisione numero n-j+2 si ha (tenendo conto che qn-j+21 perché >0):
rn-j = rn-j+1qn-j+2+rn-j+2  rn-j+1+rn-j+2  Fj + Fj-1 = Fj+1
come si voleva.
In particolare, per j=n, si ha b = r0  Fn+1 e per j=n-1 si ha r1 Fn , dunque dalla prima divisione
(essendo q1 1) a=r0q1+r1 r0+r1Fn+1+Fn=Fn+2 .
Ma dalla (***) segue a>n , da cui log(a)>n, ossia n  loga .
Dimostreremo che, nel caso peggiore, per opportuni valori di a,b il numero n delle divisioni è
proprio = loga .