Pour
, on définit le pgcd
(
a,
b) de
a et
b comme le
générateur positif de l'idéal
. En particulier
(0,0) = 0.
Algorithme
Étant donnés
, l'algorithme calcule leur pgcd
(
a,
b).
- Fini?. Si
b = 0, renvoyer
a.
- division euclidienne. Poser (dans cet ordre)
,
a := b,
b := r, et revenir à l'étape
1.
Démonstration
Les valeurs successives de
b forment une suite décroissante
(bi) dans
. Cette suite est strictement décroissante tant que
. Il
existe donc
i tel que
bi = 0 (sinon on aurait une suite strictement
décroissante dans
). Donc l'algorithme termine. On vérifie facilement
que la valeur de retour est
(a,b).
La formulation récursive est plus élégante, mais bien sûr équivalente:
Algorithme
Étant donnés
, l'algorithme calcule leur pgcd
(
a,
b).
- Si
b = 0, renvoyer
a.
- Renvoyer pgcd
.
Théorème
Soit
et
a,
b deux entiers
a >
b > 0 tels que
l'algorithme d'Euclide appliqué à
(
a,
b) nécessite exactement
n divisions,
et tels que
a soit minimal pour ces conditions. Alors
où les
Fi sont les nombres de Fibonacci définis par la récurrence
linéaire
F0 = 0,
F1 = 1.
Démonstration
En appliquant Euclide au couple
proposé, on obtient
successivement
soit exactement
n divisions. Réciproquement, soit
(
a,
b) satisfaisant les
conditions de l'énoncé et notons
,
xn =
b, ... ,
x0 = 0
la suite des
2 données, suivies des
n restes calculés par Euclide. Par
récurrence, on a
pour tout
. Soit
le quotient de la division euclidienne de
par
xi; on a
On en déduit que
pour tout
par récurrence. Comme
a
est minimal, on en déduit
, puis que les quotients successifs
sont tous égaux à
1. Ainsi
xi =
Fi, et en particulier
b =
Fn.
Lemme
Soit
Fn le
n-ème nombre de Fibonacci, défini ci-dessus, et
les solutions de l'équation
x2 =
x+1. On a
Démonstration
L'équation caractéristique de la récurrence
x2 =
x + 1 admet pour solution
le nombre d'or
et son conjugué. Donc, il existe des
constantes universelles
a et
b telles que
En posant
F0 = 0,
F1 = 1, on trouve
Corollaire
Si
a >
b > 0, le nombre d'étapes d'Euclide appliqué à
(
a,
b) est
majoré par
Démonstration
Si on a
n - 1 divisions, on obtient
soit
(puisque
) et
Corollaire
Si
, le coût du calcul de
(a,b) est
En fait, on peut facilement faire mieux :
Lemme
Si
, le coût du calcul de
(a,b) est
Démonstration
On peut supposer que
a >
b > 0. Supposons, qu'on ait exactement
n
divisions; on sait que
. On note
,
xn =
b,
,
x0 = 0, la suite des restes successifs, puis pour
i=1, ... ,
n,
la suite des quotients successifs
correspondants; autrement dit,
pour
. Le coût des divisions est dominé par
et on remarque ensuite que
Soit finalement un coût
.