Algorithme d'Euclide : encyclopédie mathématiques
Cet article est issu de l'encyclopédie libre Wikipedia.L'algorithme d'Euclide est un algorithme permettant de dĂ©terminer le plus grand commun diviseur (P.G.C.D.) de deux entiers dont on ne connaĂ®t pas la factorisation. Il est dĂ©jĂ dĂ©crit dans le livre VII des ÉlĂ©ments d'Euclide.
Sommaire |
Dans la tradition grecque, en comprenant un nombre entier comme une longueur, un couple d'entiers comme un rectangle, leur PGCD est la longueur du côté du plus grand carré permettant de carreler entièrement ce rectangle. L'algorithme décompose ce rectangle en carrés, de plus en plus petits, par divisions euclidiennes successives, de la longueur par la largeur, puis de la largeur par le reste, jusqu'à un reste nul.
Dans le rectangle de dimensions L=21 par l=15 ci-dessous, par exemple, on peut glisser un carré de côté 15 mais il reste un rectangle de côtés 15 et 6, dans lequel on peut glisser deux carrés de côté 6 mais il reste un rectangle de côtés 6 et 3 que l'on peut carreler entièrement de carrés de côté 3. Les carrés de côté 6 ou 15 peuvent aussi se carreler en carrés de côté 3. Le rectangle entier peut se carreler en carrés de côté 3. Il n'existe pas de carré plus grand permettant un tel carrelage.
On considère que pgcd(a,0) = a et que pour b ≠0 pgcd(a,b) = pgcd(b, a mod b). On progresse dans l'algorithme en diminuant à chaque étapes les nombres considérés par calcul du modulo.
Cet algorithme repose sur la structure d'anneau euclidien de l'anneau des entiers relatifs, plus particulièrement sur la propriété de division euclidienne. Il se généralise donc à bien d'autres anneaux, en particulier les anneaux de polynômes à coefficients dans un corps. L'algorithme se généralise pour permettre le calcul des coefficients de Bezout.
L'algorithme est effectif à condition de disposer d'un algorithme effectif de division euclidienne. La possibilité de disposer d'un tel algorithme rend de nombreux autres calculs effectifs, notamment, en algèbre linéaire, le calcul de facteurs invariants.
Puisque l'algorithme a pour objet le calcul d'un PGCD, il est possible de se restreindre aux entiers positifs, un PGCD de deux entiers relatifs étant égal au PGCD de leurs valeurs absolues.
Soient deux entiers naturels a et b, dont on cherche le PGCD. Le cas où a ou b est nul ne nécessite aucun algorithme ; on l'exclut. Une suite d'entiers (an)n est définie par récurrence de pas 2, plus précisément par divisions euclidiennes successives ; la suite est initialisée par a0 = a, a1 = b, puis propagée par la règle de récurrence : tant que an+1 est non nul, an+2 est défini comme le reste de la division euclidienne de an par an+1.
On commence donc par calculer le reste de la division de a par b, qu'on note r ; puis on remplace a par b, puis b par r, et on réapplique le procédé depuis le début.
On obtient ainsi une suite, qui vaut 0 à un certain rang ; le PGCD cherché est le terme précédent de la suite.
Il est intéressant de noter que si a < b, la première itération de la boucle a pour effet de "permuter a et b". Plus précisément : dans ce cas, la division euclidienne de a par b s'écrit a = b.0 + a donc a2 = a, si bien que la suite produite par l'algorithme appliqué au couple (a, b) commence par a, suivie de la suite produite par l'algorithme appliqué au couple (b, a).

Calculons, par exemple, le PGCD de 1071 et de 1029 Ă l'aide de l'algorithme d'Euclide :
1071 = 1029 Ă— 1 + 42
1029 = 42 Ă— 24 + 21
42 = 21 Ă— 2 + 0
Il faut prendre le dernier reste avant le zéro, donc PGCD(1071 ; 1029) = 21
Au début, Euclide a formulé le problème de façon géométrique : comment trouver une « unité de mesure » commune pour deux longueurs de segments. Il procède par soustractions répétées de la longueur du plus court segment sur la longueur du plus long. Cela correspond à une adaptation de la méthode naïve de calcul de la division euclidienne, telle que décrite dans l'article consacré.
La définition même de la suite par division euclidienne montre que, pour tout
tel que
est non nul, il existe un entier
tel que :
avec de plus pour tout
tel que
non nul. La suite d'entiers naturels
est donc strictement décroissante (tant qu'elle est non nulle) à partir du rang 1, et donc vaut 0 à un certain rang. L'existence d'un dernier reste non nul est ainsi établie.
Soit N + 1 l'indice de ce dernier reste non nul. Il faut montrer que est bien le PGCD cherché. La relation précédente s'écrit donc ici
, qui montre que
divise
. Écrivant ensuite
, on en déduit que
divise aussi
; puis, de même, et par récurrence, que
divise tous les termes de la suite
; en particulier les premiers termes
et
.
est donc bien un diviseur commun de
et
. Réciproquement, tout diviseur commun de a et b divisera aussi
, et à nouveau par récurrence, divisera tous les termes de la suite
; donc en particulier
.
est donc un diviseur commun de a et b que divise tout autre diviseur commun ; c'est bien le PGCD.
Le théorème de Lamé stipule que le nombre d'étapes de l'algorithme d'Euclide exécuté sur deux entiers est borné (supérieurement) par cinq fois le nombre de chiffres nécessaire à écrire (en base 10) le plus petit de ces deux entiers.
On peut en fait être légèrement plus précis : le nombre d'étapes de l'algorithme d'Euclide exécuté sur deux entiers et
, avec
, est borné par la partie entière de
, oĂą
désigne le logarithme naturel et
est le nombre d'or.
Comme le nombre de chiffres de l'écriture de en base 10 est
et que la quantité
est infĂ©rieure Ă
(elle vaut environ 4,78497), on retrouve bien le théorème de Lamé.
De plus, cette majoration est la meilleure possible, puisqu'elle est atteinte quand et
sont deux nombres de Fibonacci consécutifs.
L'identité de Bézout assure l'existence de deux entiers u et v tels que : . L'algorithme d'Euclide convenablement adapté permet de calculer de tels coefficients.
Pour cela, on introduit deux suites et
telles que pour tout n, on ait la relation :
. Si de telles suites existent, les termes
constitueront une paire de coefficients de Bezout pour a et b.
On peut choisir puis
, puis la relation de récurrence de pas 2 entre les
montre :
On peut ainsi définir par la relation de récurrence de pas 2 :
et l'initialisation précédente, et
par
et l'initialisation précédente ; et on obtient bien la relation annoncée pour tout n.
L'algorithme étendu s'implémente comme l'algorithme classique ; il suffit de rajouter des variables correspondant aux coefficients u et v à calculer, et de faire une multiplication et une soustraction supplémentaires, pour calculer chacun des deux nouveaux coefficients, à chaque étape.
Les quotients successifs qui apparaissent quand l'algorithme d'Euclide est appliqué aux données a et b, sont précisément les nombres qui apparaissent dans la représentation sous forme de fraction continue de a/b. Considérons l'exemple de a = 1071 et b = 1029 utilisé ci-dessus.
Voici le calcul avec les quotients soulignés (successivement 1, 24 et 2):
De cela on tire :
Dans l'égalité précédente, le second membre s'appelle la fraction continue ou continuée du quotient 1071/1029.
On peut en déduire les 3 approximations suivantes de la fraction, classées par ordre de précision croissante :
Cette méthode peut également être utilisée pour des nombres réels a et b ; comme dans le cas de deux entiers, la suite de quotients calculés représente la « décomposition en fraction continue » de a/b et fournit une suite d'approximations successives, de qualité croissante, du quotient a/b. Dans le cas où ce quotient est irrationnel, l'algorithme d'Euclide ne se termine pas et la suite des approximations obtenues est donc elle-même infinie !
nota : La décomposition en fraction continuée (et la série d'approximations successives correspondante) peut être appliquée, non seulement à un nombre réel quelconque, mais également à une fonction : cette démarche consiste à rechercher les approximants de Padé, dont on peut définir le principe comme suit : Au voisinage d'un point, le développement en série de Taylor d'une fonction donnée fournit un polynôme qui réalise une approximation de la fonction. Mais on peut également chercher une fraction rationnelle qui satisfasse les mêmes conditions que la partie polynomiale du développement de Taylor : l'égalité des dérivées de la fonction et de son approximation, jusqu'à un certain ordre donné.
La comparaison de ces deux types de développements permet de très intéressants développements, comme la démonstration de l'irrationalité de ζ(3).
Cet article est issu de l'encyclopédie libre Wikipedia.