Il metodo delle divisioni successive

Icona iDevice

   Il  metodo  delle  divisioni  successive  

Icona iDevice Euclide e il metodo delle divisioni successive

Un algoritmo più veloce, è basato su divisioni successive.

Euclide descrisse questo algoritmo nel suo libro degli Elementi. Invece di usare i numeri interi, però, utilizzò i segmenti di retta. Perciò il suo algoritmo serve anche a determinare il massimo comune divisore di due segmenti. In certi casi l'algoritmo può richiedere numerosissimi passaggi, risultando molto lento (provate con MCD (900,15)). Conviene quindi renderlo più veloce e si può fare ricorrendo ad una serie di divisioni con resto anziché sottrazioni. Il principio su cui ci si basa è il seguente (supponiamo m>n):

MCD(m,n) = MCD(r,n)dove r è il resto della divisione m/n

Come si vede, questa regola permette di passare rapidamente, per mezzo di divisioni con resto successive, a MCD di numeri sempre più piccoli, fino ad ottenere:

MCD(r,0)=r

Questo algoritmo è molto più veloce del primo. La traccia dei calcoli vi farà capire come funziona. Più sotto troverete la spiegazione dettagliata

(se non si ha sufficiente dimestichezza con certi calcoli si può ometterla).

 
 

Spiegazione del teorema

Prendiamo a,b interi con a,b>0 e supponiamo 0<a<b.

Dividiamo b per a, avremo che:

b = q1´a+r1, con 0 <r1<a.

Osserviamo che:

i) se r1=0, allora b = q1´a e abbiamo già che MCD(a,b)=a;

ii) altrimenti, preso un intero positivo d

1) se d divide sia a che b, allora dividerà anche r1 in quanto combinazione lineare di a e b;

2) viceversa, se d divide a e r1, dividerà anche b per la stessa proprietà sopra.

Quindi possiamo concludere che

MCD(a,b) = MCD(a,r1),

con il vantaggio che r1<a<b.

Ora ripetiamo lo stesso procedimento sostituendo al posto di a e b i nuovi valori a e r1 con r1<a:

a = q2´r1+r2, con 0 <r2<r1

dove

i) se r2=0, si ha che r2|a, quindi MCD(a,b) = MCD(a,r1) = r2;

ii) altrimenti, si ripetono le stesse conclusioni giungendo a definire che MCD(a,b)=MCD(a,r1)=MCD(r1,r2).

Continuiamo a costruire queste successioni di resto sino ad arrivare all’i-esima iterazione dove

ri-1 = qi+1´ri+ri+1, con 0 £ ri+1<ri

e avremo che

i) se ri=0, allora MCD(a,b) = ri-1;

ii) altrimenti, continuiamo il procedimento.

Poiché gli ri sono interi non negativi e la successione di resti è decrescente, ad un certo punto ci dovremo fermare, cioè esisterà un rn diverso da zero tale che rn+1=0, allora il nostro MCD(a,b) sarà uguale all’ultimo resto diverso da zero della catena di divisioni.

Questo procedimento è vantaggioso perché non dobbiamo scomporre in fattori primi e si utilizzano divisioni sempre più facili.

Proviamo ora a ricostruire s,t procedendo a ritroso nell’algoritmo euclideo:

presi MCD(a,b) = rn e sa+tb = rn, possiamo scrivere

rn = rn-2 - qn´rn-1,

e andiamo a sostituire il valore di rn-1 che si ricava dall’uguaglianza rn-3 = qn-1´rn-2 + rn-1:

rn = rn-2 - qn´ (rn-3 - qn-1´rn-2) = (1+qnqn-1) rn-2 - qn´ rn-3.

Ora sostituiamo in questa equazione il valore di rn-2 che si ottiene da rn-4 = qn-2´rn-3 + rn-2 e avremo rn come espressione in rn-3 e rn-4, quindi andremo a sostituire rn-3 e continueremo questo procedimento fino ad ottenere rn come combinazione lineare dei soli a e b.

 
 
 



Questo articolo è sotto la licenza Creative Commons Attribution 3.0 License