Algèbre effective : autour de l'algorithme d'Euclide

Algèbre effective : autour de l'algorithme d'Euclide

I Décimales des rationnels

Algorithme d'Euclide → I Décimales des rationnels

Voici le développement décimal de quelques rationnels :

= 000 ...

= 000 ...

= 000 ...


La première remarque est que ces développements semblent périodiques à partir d'un certain rang (cliquer sur l'étoile pour en voir d'autres).

I-1 Périodicité


Voici maintenant quelques développements à dénominateur fixé.
19 =
29 =
39 =
49 =
59 =
69 =
79 =
89 =

Que pouvez-vous conjecturer ? Comment prévoir la taille des décalages ?

I-2 Dénominateur fixé


Et maintenant, comment calculer un chiffre quelconque du développement décimal :

I-3 Calculer un chiffre quelconque

Algorithme d'Euclide → I Décimales des rationnels

I-1 Périodicité

Théorème

Le développement décimal d'un rationnel (positif) est périodique à partir d'un certain rang. Plus précisément, écrivons le rationnel
x=p2 a×5 b×q
comme une fraction irréductible avec p et q des entiers positifs et q premier à 10p. Soit n 0=max(a,b) et soit P l'ordre de 10 modulo q, c'est-à-dire le plus petit entier strictement positif tel que
10 P1modq.
Alors, le développement décimal de x est de la forme b m...b 0,a 1...a n... avec a n+P=a n pour n>n 0.

Exercice


Développement périodique mixte
Périodicité et ordre de 10

I-2 Dénominateur fixé

Algorithme d'EuclideI Décimales des rationnels → I-2 Dénominateur fixé

Pouvez-vous prévoir de combien est le décalage quand il y en a un ? Pourquoi pour certains dénominateurs, le motif en vert se retrouve-t-il sur chaque ligne alors que pour d'autres dénominateurs cela n'est pas le cas ? Dans le tableau de droite, on a calculé les valeurs des puissances de 10 modulo . Cela peut peut-être vous aider à répondre.

Résultat

Soit r le reste de la division euclidienne de 10 i par b. Le développement décimal de rb est obtenu en décalant la virgule (ou le point ici !) de i positions vers la droite dans le développement de 1b et en prenant la partie fractionnaire du nombre obtenu.

Démonstration
On écrit 10 i=r+qb avec r un entier positif strictement inférieur à b. Donc,
rb=10 ibq
La partie fractionnaire du développement décimal de 10 ib est égale au développement décimal de rb et il ne reste plus qu'à réfléchir à l'effet de la multiplication par une puissance de 10 sur le développement ...

Remarque

Supposons le dénominateur b premier à 10. Si P est l'ordre de 10 modulo b, le nombre de valeurs différentes que prend 10 i modulo b pour i entier est égale à P.
En utilisant cette remarque et en regardant simplement les développements décimaux à gauche, on peut deviner quel est l'ordre de 10 modulo . Bien sûr, cela se voit aussi avec les valeurs de droite.

Algorithme d'EuclideI Décimales des rationnels → I-2 Dénominateur fixé

I-3 Calculer un chiffre quelconque

Algorithme d'EuclideI Décimales des rationnels → I-3 Calculer un chiffre quelconque

Objectif

Comment calculer un chiffre quelconque du développement décimal de 1b par exemple le n-ième, alors qu'on ne possède qu'une calculette avec peu de chiffres après la virgule ?

Résultat

  • Pour amener ce chiffre en première position après la virgule, on multiplie par 10 n1.
    Par exemple, 10 8 times 0.098795181 =9879518.1
  • On écrit 10 n1=r+qb avec r un entier positif strictement inférieur à b. Donc,
    10 n1b=rb+q
    Le premier chiffre après la "virgule" de 10 ib est donc égal au premier chiffre après la virgule de rb. Il suffit donc de calculer le premier chiffre (sur la gauche) du quotient de 10r par b.

Exercice


Arithmétique du développement
Arithmétique du développement, suite
Calculer le développement
Algorithme d'EuclideI Décimales des rationnels → I-3 Calculer un chiffre quelconque

II Application de l'algorithme de Bezout

Algorithme d'Euclide → II Application de l'algorithme de Bezout
Algorithme d'Euclide → II Application de l'algorithme de Bezout

II-1 Retrouver une fraction à partir de son développement décimal

Algorithme d'EuclideII Application de l'algorithme de Bezout → II-1 Retrouver une fraction à partir de son développement décimal

Objectif

On connaît un nombre rationnel positif x=st<1 par son développement décimal à 10 k près. On sait d'autre part que son dénominateur est borné par T. Calculer x.

Analyse

Soit N=10 k. Soit b la partie entière de Nx. Elle est inférieure à N. Disons que l'approximation était donnée par défaut. on a donc
bN<st<b+1N
et donc
0<sNtb<t
On peut donc écrire sNtb=r avec r un entier vérifiant 0<r<t<T. On cherche donc des solutions de l'équation
x=Ny+bz
vérifiant certaines inégalités.

Résultat

On fait tourner l'algorithme de Bezout sur N et b. Soit r i le premier reste inférieur ou égal à T. On obtient une équation
r i=s iN+t ib.

Si r i<t iT, alors s it i a bien les propriétés voulues pour x.

Algorithme d'EuclideII Application de l'algorithme de Bezout → II-1 Retrouver une fraction à partir de son développement décimal

II-2 Un exemple à partir d'un rationnel

Algorithme d'EuclideII Application de l'algorithme de Bezout → II-2 Un exemple à partir d'un rationnel

Exemple

Dans l'exemple ci-dessous que vous pouvez changer,
le nombre rationnel choisi à l'avance est et son développement décimal à 10 9.223372e+18 près est 0,.
  • Voyez-vous le rationnel ?
  • A-t-on la majoration 2 2<10 9.223372×10 18 ? Vous pouvez augmenter ou diminuer la précision.
Algorithme d'EuclideII Application de l'algorithme de Bezout → II-2 Un exemple à partir d'un rationnel

II-3 Est-ce un rationnel ?

Exemple



Vous pouvez ici donner

Vous cherchez un rationnel dont le développement décimal est donné à 10 6 près par 0,139150. Si vous voulez le trouver à coup sûr ou être sûr qu'il n'existe pas, vous devez imposer que son dénominateur est borné par 12×10 6=1. Voyez-vous le rationnel ? Existe-t-il ?

Pour voir la solution théorique, voir ce théorème .

Exercice

Recherche d'un rationnel

II-4 Un théorème pour pouvoir répondre

Algorithme d'EuclideII Application de l'algorithme de Bezout → II-4 Un théorème pour pouvoir répondre
Algorithme d'EuclideII Application de l'algorithme de Bezout → II-4 Un théorème pour pouvoir répondre

II-4-1 L'algorithme de Bezout

Soient a et b des entiers positifs avec ab. Définissons
  • les entiers r 0, ... , r m+1 et q 1, ... , q m avec m0 de la manière suivante : a=r 0, b=r 1, ... , r i1=r iq i+r i+1 avec 0r i+1<r i et r m+1=0 ; les q i sont strictement positifs.
  • les entiers s 0, s 1, ... , s m+1 et t 0, t 1, ... , t m+1 par s 0=1, t 0=0, s 1=0, t 1=1 et
    s i+1=s i1s iq i,t i+1=t i1t iq i.
Alors
  1. r i=s ia+t ib pour tout i=0 ... m+1 ;
  2. s it i+1t is i+1=(1) i ;
  3. pgcd(s i,t i)=1 pour tout i=0 ... m+1 ;
  4. t it i+10 et t it i+1 pour tout i=0 ... m ; s is i+10 et s is i+1 pour tout i=1 ... m
  5. r i1t ia et r i1s ib pour tout i=1 ... m+1.

On peut disposer les calculs précédents de la manière suivante :
a = 1 × a + 0 × b q 1 b = 0 × a + 1 × b q 2 r 2 = s 2 × a + t 2 × b q 3 r 3 = s 3 × a + t 3 × b q 4 r 4 = s 4 × a + t 4 × b
q 3 est par exemple le quotient de r 2 par r 3 et où la ligne L 4 est obtenue comme la ligne L 2 - q 3 fois la ligne L 3.
Démonstration
On peut supposer ab>0. On définit (r i) 0im+1 et (q i) 1im comme précédemment, ainsi que les suites définies par récurrence :
  • t 0=0, t 1=1, t i+1=t i1q it i, 1im.
  • s 0=1, s 1=1, s i+1=s i1q is i, 1im.
Alors pour tout 0im
(s i t i s i+1 t i+1)(a b)=(r i r i+1).
et on peut voir l'algorithme d'Euclide étendu comme une suite d'opérations élémentaires sur les lignes de ce système; donc, pour tout 0im, on a
(s i t i s i+1 t i+1)=(0 1 1 q i)(0 1 1 q 1)(s 0 t 0 s 1 t 1),
où la dernière matrice est l'identité. On en déduit que det(s i t i s i+1 t i+1)=(1) i et donc
(a b)=(s i t i s i+1 t i+1) 1(r i r i+1)=(1) i(t i+1 t i s i+1 s i)(r i r i+1)
Mais cet inverse est aussi le produit des
(0 1 1 q j) 1=(q j 1 1 0)
dont tous les coefficients sont positifs, donc tous ses coefficients sont positifs ! On en déduit
(a b)=(t i+1 t i s i+1 s i)(r i r i+1).
Donc t i+1r i+t ir i+1=a, s i+1r i+s ir i+1=b et en particulier
r i+1t i   a
r i+1s i   b
et
t i   a/r i+1a/(a,b)a
s i   b/r i+1b/(a,b)b

(Rappelons que r i est strictement décroissante avec r m=pgcd(a,b) et r m+1=0.)
Les t i sont de signe alterné, ce qui se voit en comparant les matrices égales
(t i+1 t i s i+1 s i)=(1) i(t i+1 t i s i+1 s i)(r i r i+1)
On a donc t i+1=t i1+q it i. Comme q i>0, nécessairement t i<t i+1. On fait de même pour les s i.

On démontre que le coût est en O((lnN) 2) pour a et b inférieurs à N.

II-4-2 Le théorème en vue


Soient R, T, N, b des entiers strictement positifs tels que b<N,2RTN. On fait tourner l'algorithme d'Euclide étendu avec comme entrées a=N et b. Soit l'unique indice i compris entre 1 et m+1 tel que
r iR<r i1
[ t i est alors non nul]. On pose
r=r i,s=s i,t=t i.

Théorème

Soient R, T, N, b des entiers strictement positifs tels que 2RTN,b<N. Soient trois entiers r, s, t tels que r=sN+tb, rR, 0tT. Alors, avec les notations précédentes, le triplet (r,s,t) est un multiple entier de (r,s,t).
Attention, on n'affirme pas qu'il y a une solution, il faut ensuite vérifier que r<t et que t est inférieur à T. Par contre, si (r,s,t) ne fournit pas une solution sous les conditions de l'énoncé 2RTN, c'est qu'il n'y en a pas.
Démonstration
Soient r, s, t trois entiers relatifs vérifiant
r=sN+tb,rR,0tT.
Les trois vecteurs v=(r s t), v i=(r i s i t i) et v i+1=(r i1 s i1 t i1) appartiennent au plan d'équation x=Ny+bz. On a donc
(r s t)=m(r i s i t i)+n(r i1 s i1 t i1)
Comme s it i1s i1t i=±1, les coefficients m et n sont entiers.
  • Supposons m et n de même signe (ou nuls). Si n est non nul, Rrr i1>R, (car r i, r i1 sont positifs), ce qui est impossible. Donc
    (r s t)=m(r i s i t i)=m(r s t)
  • Si m et n sont de signe contraire, nécessairement t it puisque t i et t i+1 sont de signe différent et que t i1t i. Donc
    0rt i<Rt<N/2
    0r it<RT<N/2
    et
    N/2<r itrt i<N

    Les trois vecteurs colonne de la matrice (r r i N s s i 1 t t i 0) sont liés, leur déterminant est nul et le déterminant de (r r i 0 s s i 1 t t i 0) est congru à 0 modulo N :
    r itrt i0modN
    Finalement r itrt i=0. Le vecteur v est combinaison linéaire de v i et de e=(0 1 0). Comme v et v i appartiennent à un plan qui ne contient pas e, ils sont colinéaires.

Ce qui termine la démonstration.

Exercice

Montrer que le théorème précédent donne un algorithme pour déterminer un rationnel connaissant une borne pour son dénominateur et le début de son développement décimal sous certaines conditions. Montrer que le coût de cet algorithme de recherche d'un rationnel est en O((lnN) 2). Il est donc au pire quadratique en la taille de N.
Démonstration
On se donne donc une puissance de 10, N=10 n. On cherche un rationnel inférieur à 1 dont on connaît le développement décimal à l'ordre n (par défaut ou par excès) et dont on sait que son dénominateur est inférieur à T.
On applique le théorème précédent avec R=T. On suppose que 2T 2N. Si le rationnel existe, il s'agit de s it i avec r i<T<r i1. Mais il faut vérifier que r i<t i<T. Si cela n'est pas le cas, c'est qu'il n'y a pas de solution.
On a prouvé en particulier qu'il existe au plus un seul rationnel dont le développement décimal à l'ordre n est donné et de dénominateur borné par 10 n/2.

II-5 Retrouver un entier par ses classes résiduelles, même si certaines sont fausses


Objectif

On a codé un entier x en calculant ses classes résiduelles modulo des entiers N 1, ... , N r premiers entre eux deux à deux : c(x)=(x 1,...,x r). L'entier N= iN i est supposé plus grand que x. Mais dans la transmission de c(x), des erreurs sont survenues. Pas trop quand même, au plus L des (x 1,...,x r) sont faux. Retrouver cependant x.

Résultat

On suppose que x est inférieur à un entier Z fixé. Soit P une borne supérieure pour le produit de L parmi les entiers N 1, ... , N r (par exemple, le produit des L plus grands). On suppose que N>4P 2Z.
Soit c 1(x)=(y 1,...,y r) les classes transmises effectivement. Par le lemme chinois, il existe un entier y vérifiant
yy 1modN i
pour tout i. On applique l'algorithme d'Euclide étendu à l'entier N et à y. Soit i le plus grand entier tel que le reste r i obtenu par l'algorithme soit inférieur ou égal à ZP. On pose r=r i, s=s i, t=t i.

Théorème

Si t divise r, z=rt est une solution possible.

On démontre que le coût est en O((lnN) 2).
Démonstration
Soit t le produit des N i pour lesquels la transmission de x i est fausse. On ne connaît bien sûr pas encore t. Par définition de P, t est inférieur ou égal à P.
Posons r=tzz est l'entier cherché (le vrai message). Par hypothèse, z est inférieur à Z, donc
rZP.
D'autre part
rtymodN.
En effet, r et ty sont tous deux congrus à 0 modulo N i si N i est mauvais, (dans ce cas, N i divise t) ; pour N i bon, comme xymodN i, r=tx et ty sont bien congrus modulo N i. Soit s l'entier tel que
r=ty+sN
Comme 0rZP, tP et ZP×PN/2, on peut appliquer le théorème : (r,s,t) est un multiple entier de (r,s,t) et
z=r/t=r/t.
Si t divise r, l'entier rt est la solution cherchée. Sinon, c'est qu'il y a d'autres fautes dans la transmission du message.

Exercice

Erreur dans un message Vous pouvez regarder l'exemple avant.

II-6 Un exemple


On sait que le message est inférieur à NaN et qu'il y a au plus une erreur. Les classes résiduelles transmises sont
  • mod 7
  • mod 11
  • mod 17
  • mod 23
  • mod 29

Par le lemme chinois, on trouve que l'entier transmis est . L'algorithme d'Euclide appliqué à 7×11×17×29×23= et donne
Regardons la première ligne où le reste (colonne de gauche) est strictement inférieur à NaN=. Le nombre cherché est 1=2.1474836×10 9 .

III Fractions rationnelles

Algorithme d'Euclide → III Fractions rationnelles

Maintenant, nous allons voir quelques analogies du côté des fractions rationnelles.

III-1 Approximant de Padé

III-2 Un exemple

III-3 Séries de Laurent

III-4 Les coefficients

Algorithme d'Euclide → III Fractions rationnelles

III-1 Approximant de Padé

Algorithme d'EuclideIII Fractions rationnelles → III-1 Approximant de Padé

Définition

Soit F un corps et f une série formelle
i0f ix i
avec f i dans F. Un (k,nk)-approximant de Padé de f est une fraction rationnelle rt telle que
  • x ne divise pas t
  • rtfmodx n
  • degr<k, degtnk
Soit f un polynôme de degré strictement inférieur à n et k un entier strictement inférieur à n. On exécute l'algorithme d'Euclide étendu pour x n et f. Soient r i les restes successifs obtenus. La suite des degr j est strictement décroissante. Soit j le plus petit entier tel que degr j<k. On pose r=r j, s=s j, t=t j avec les notations de l'algorithme :
r=sx n+tf.

Théorème

Avec les notations précédentes, les polynômes r et t vérifient
  • rtfmodx n
  • degr<k, degtnk.
Pour tous polynômes s et t tels que r=sx n+tf avec degr<k, degtnk, on a (r,s,t)=w(r,s,t) pour w un polynôme.
Ainsi, si rt est irréductible, c'est un (k,nk)-approximant de Padé.
Démonstration
Exercice !

Exercice

Approximant de Padé

Algorithme d'EuclideIII Fractions rationnelles → III-1 Approximant de Padé

III-2 Un exemple

Exemple



Les égalités suivantes permettent de déterminer des approximants de Padé du polynôme de Taylor de (1+x 2) 14 d'ordre 3 :
f=
Dans le dessin qui suit, on a représenté sur l'intervalle [-2,2] la différence entre (1+x 2) 14 et un approximant de Padé

III-3 Séries de Laurent

Algorithme d'EuclideIII Fractions rationnelles → III-3 Séries de Laurent

Définition

  • Une série formelle à coefficients dans un anneau R est une expression formelle de la forme f=a 0+a 1X+...a nX n+... avec les a iR
  • Une série de Laurent est une expression formelle de la forme f=a mX m+a m+1X m+1+... pour un entier relatif m.
  • Une série de Laurent renversée est une expression formelle de la forme f= i= ma iX i.

On peut définir le degré d'une série de Laurent inversée f comme le plus grand entier m tel que a m soit non nul ; et le coefficient dominant comme a m ; on peut aussi définir la somme et le produit de deux séries de Laurent renversées

Définition

L'ensemble des séries de Laurent renversées forme un anneau appelé anneau des séries de Laurent renversées et noté F((x 1))

Remarque

Une série de Laurent renversée f= i= ma iX i avec a m0 a un inverse si et seulement si son coefficient dominant a m est inversible dans l'anneau des coefficients. Autrement dit, si F est un corps, F((x 1)) est un corps.

L'analogie avec le développement décimal des réels est clair.
Pour voir une fraction rationnelle comme une série de Laurent renversée lorsque F est un corps, on écrit le numérateur et le dénominateur en mettant en facteur leur terme de plus haut degré, puis on fait le quotient.
()/()=(*())/(*())
=*()+...

Algorithme d'EuclideIII Fractions rationnelles → III-3 Séries de Laurent

III-4 Les coefficients

Algorithme d'EuclideIII Fractions rationnelles → III-4 Les coefficients

On désire calculer le développement d'une fraction rationnelle st : par exemple, étant donné k un entier positif, on veut calculer le coefficient de x k.

Résultat

On calcule h=x k1smodt avec degh<degt.
Le coefficient de x k est le résidu de ht : si degh=degt1, c'est le quotient des coefficients dominants de h et de t ; si degh<degt1, c'est 0.

Démonstration
Le coefficient cherché est le résidu (c'est-à-dire coefficient de 1x) de x k1r/t. Comme h=x k1r+st, on a
x k1rt=s+ht.


Exemple


On a

Le coefficient de dans vu comme élément de est .

Exercice

Trouver un coefficient
Algorithme d'EuclideIII Fractions rationnelles → III-4 Les coefficients

IV L'algorithme d'Euclide : son coût

Algorithme d'Euclide → IV L'algorithme d'Euclide : son coût
.
Avant de commencer, rappelons quelques notations et coûts des opérations élémentaires

IV-1 Combien ça coûte ?


Les nombres de Fibonacci permettent d'analyser le coût de l'algorithme d'Euclide.

IV-2 Nombres de Fibonacci

IV-3 Analyse de l'algorithme d'Euclide


L'algorithme du pgcd étendu permet d'obtenir des relations du type Bezout :

IV-4 Pgcd étendu

Algorithme d'Euclide → IV L'algorithme d'Euclide : son coût

IV-1 Combien ça coûte ?


Pour , on note
la taille de a. Justification: le nombre de chiffres de a, écrit en base B est , donc la taille est liée au nombre de chiffres, sans pour autant dépendre de la base de numération, ni de la représentation des entiers. On rajoute 1 pour assurer que et donc pouvoir écrire qu'une constante est . Remarquons aussi que implique .
Si , alors les algorithmes de l'école primaire (en comptant les opérations élémentaires sur les chiffres) montrent que
  • le calcul de a un coût
  • le calcul de a un coût
  • le calcul de (q,r), quotient et reste de la division euclidienne de a par b ( ), a un coût soit .

IV-2 Nombres de Fibonacci


Les Fi sont les nombres de Fibonacci définis par la récurrence linéaire

Les équations
permettent de calculer les nombres de Fibonacci.

Analyse [calcul récursif de Fn.]

Soit Cn une majoration du coût du calcul d'un Fi pour et mn une majoration de celui nécessaire pour multiplier deux entiers inférieurs à . Les équations précédentes impliquent que
pour tout . Comme , il a O(n) chiffres, et la multiplication naïve donne
En choisissant , on obtient Cn = O(n2).
Plus généralement, sous l'hypothèse pour , on obtient
car n = O(mn).

Remarque

Si on pose , alors les relations de récurrences ci-dessus montrent que Tn se calcule facilement en fonction de  :
et

Si tn majore le coût du calcul de , on a (la multiplication par 2 est une addition).

Gros avantage : l'option remember n'est plus nécessaire, puisque aucun résultat n'est calculé plusieurs fois. Le coût en mémoire est bien moindre.

IV-3 Analyse de l'algorithme d'Euclide

Algorithme d'EuclideIV L'algorithme d'Euclide : son coût → IV-3 Analyse de l'algorithme d'Euclide

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).
  1. Fini?. Si b = 0, renvoyer a.
  2. 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).
  1. Si b = 0, renvoyer a.
  2. 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 .
Algorithme d'EuclideIV L'algorithme d'Euclide : son coût → IV-3 Analyse de l'algorithme d'Euclide

IV-4 Pgcd étendu


Algorithme

Étant donnés deux entiers positifs a et b, l'algorithme calcule d = (a,b), et des entiers relatifs s et t tels que a s + b t = d.
  1. Si a = 0, renvoyer d = b, s = 0, t = 1.
  2. On pose x = a, y = b, sx = 0, ty = 1.
  3. Tant que
    1. trouver q, r réalisant la division euclidienne x = q y + r.
    2. remplacer (tx, ty) par (ty, tx - qty).
    3. remplacer (x, y) par (y, x - q y)
  4. Renvoyer d = x, , et t = tx.

Démonstration
(x,y) prennent les mêmes valeurs que dans l'algorithme d'Euclide, donc l'algorithme étendu termine après le même nombre de boucles. La démonstration de l'assertion du (3) est immédiate par récurrence. On en déduit qu'en (4), , donc . Le résultat suit.

Tout au long de l'algorithme d'Euclide étendu, on a
En particulier les coefficients de l'identité de Bezout s a + t b = d obtenus satisfont et .

Corollaire

Si a et b sont inférieurs à N, le coût d'obtention du pgcd de a et b et des coefficients de Bezout est .

Démonstration
Le coût est dominé par
en majorant , et comme dans la section précédente. On a majoré le coût des soustractions par

V Tous les exercices WIMS

Algorithme d'Euclide → V Tous les exercices WIMS
  • Développement périodique mixte
  • Périodicité et ordre de 10
  • Arithmétique du développement
  • Arithmétique du développement, suite
  • Calculer le développement
  • Recherche d'un rationnel
  • Erreur dans un message
  • Approximant de Padé
  • Trouver un coefficient
Algorithme d'Euclide → V Tous les exercices WIMS

document autour des rationnels et de l'algorithme d'Euclide du point de vue algorithmique.
: rational_number,euclidean_algorithm,algorithmics, interactive mathematics, interactive math, server side interactivity

The most recent version

Cette page n'est pas dans son apparence habituelle parce que WIMS n'a pas pu reconnaître votre navigateur web.
Afin de tester le navigateur que vous utilisez, veuillez taper le mot wims ici : puis appuyez sur ``Entrer''.

Veuillez noter que les pages WIMS sont générées interactivement; elles ne sont pas des fichiers HTML ordinaires. Elles doivent être utilisées interactivement EN LIGNE. Il est inutile pour vous de les ramasser par un programme robot.