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
.