Algoritmo di Euclide

A cosa serve?

L'algoritmo di Euclide calcola il massimo comune divisore (MCD) di due numeri interi.

Come funziona l'algoritmo di Euclide

Dati due interi a e b che rispettano la seguente condizione

$$ a \ge b \ge 0 $$

L'algoritmo effettua la divisione a:b e ne calcola il resto r.

$$ a:b = q \:\: \text{con r} $$

ossia

$$ a = qb + r $$

Se il resto è un intero positivo, divide b per r e ne calcola il resto.

$$ b:r = q_2 \:\:\text{con r} $$

L'algoritmo termina quando il resto è nullo ( r=0 ).

L'ultimo resto non nullo del processo è il Massimo Comune Divisore ( o MCD )dei due numeri.

Un esempio pratico

Dati due numeri a=48 e b=32

I due numeri rispettano la condizione

$$ a \ge b \ge 0 \\ 48 \ge 24 \ge 0 $$

Calcolo la divisione a:b

$$ 48:32 = 1 \:\:\text{con resto 16} $$

Il resto è diverso da zero (r=16)

Quindi calcolo la divisione b:r

$$ 32:16 = 2 \:\:\text{con resto 0} $$

Il resto è zero.

L'ultimo resto non nullo rpr=16 (il resto della precedente divisione) è il massimo comune divisore di 48 e 32.

$$ MCD(48,32)=16 $$

Ho così trovato il massimo comune divisore dei due numeri interi.

Quanti passi necessitano per trovare la soluzione

L'algoritmo di Euclide trova il massimo comune divisore MCD(a,b) di due numeri interi a e b in al massimo b passi.

Il numero intero b fissa un limite superiore al di sopra del quale non si può andare.

Tuttavia, si tratta di una stima in eccesso e non è la migliore possibile.

Esempio

Il precedente esempio MCD(48,32) richiede al massimo 32 passi.

Si tratta però di una stima troppo eccessiva.

Secondo il Teorema di Lamé i passi dell'algoritmo euclideo per calcolare il massimo comune divisore di due interi a e b è minore uguale a 5k. Dove k sono il numero di cifre dell'intero b.

Esempio

Il precedente esempio MCD(48,32) richiede al massimo 5*k passi

$$ 5 \cdot k \:\: passi $$

L'intero b ha due cifre (k=2)

$$ 5 \cdot 2 = 10 \:\: passi $$

La stima fornita dal teorema di Lamé è senza dubbio più vicina alla realtà.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base