Chapitre 8 : algorithmes et arithm´etique (suite)
1.5.1 Premi`ere approche pour l’algorithme d’Euclide ( notations harmonis´ees)
Ex. pl. 16 (notations modifi´ees) On consid`ere deux entiers (a, b)∈N2, avec a>b, on note
a=bq +rla division euclidienne de apar b. On note r0=a,r1=bet on r´e´ecrit cette division
euclidienne r0=r1q1+r2: ´etape 1 de l’algo. d’Euclide.
Pour tout k≥1, tant que rk≠0, on note rk+1le reste de la division euclidienne de rk−1par rk,
qu’on ´ecrit rk−1=qkrk+rk+1. On note, comme dans le cours, rNle dernier reste non nul, de sorte
que la derni`ere ´etape de l’algorithme d’Euclide s’´ecrit : rN−1=qNrN+0.
Avec ces notations l’algorithme a exactement N´etapes (num´erot´ees par les qi).
a) Montrer que dans la division euclidienne a=bq +r, on a br ≤1
2ab et que pour tout k,
rk+1rk≤1
2rkrk−1.
Autrement dit, le produit “dividende-diviseur” est au moins divis´e par 2`a chaque ´etape de
l’algo. d’Euclide
b) En d´eduire que le nombre Nd’´etapes de l’algorithme d’Euclide appliqu´e `a aet best major´e
par log2(a)+log2(b).
Solution de l’exercice
a) Remarque : Au brouillon : que veut-on montrer ? Que br ≤1
2ab i.e. que ab ≥2br i.e. que
a≥2rbon, au travail !
Par d´ef. de la division euclidienne, on a a=bq +ravec r<b.
En outre, comme a>b, on a q≥1 donc b+r≤a. Ainsi 2r≤a.
Donb 2br ≤ab comme demand´e. C’est ´evidemment la mˆeme chose `a chaque ´etape.
b) Remarque : Au brouillon : que veut-on montrer ? Si Nest le nombre d’´etapes de l’algo-
rithme, on veut montrer que N≤log2(a)+log2(b)i.e. que 2N≤ab ah cela ressemble plus au
a)...
Avec la notation (rk)introduite ci-dessus pour les restes successifs de l’algo. d’Euclide, on a
par a) :
r2r1≤1
2r1r0, puis r3r2≤1
2r2r1≤1
4r1r0.
Par r´ec. imm´ediate avec la relation du a), pour tout k∈0, N −1,rk+1rk≤1
2kr1r0=ab
2k.
En particulier pour k=N−1, rNrN−1≤ab
2N−1
Ensuite, il est tr`es utile de penser qu’un entier positif non nul m v´erifie m≥1
Donc ici rN≥1 et comme rN−1>rN, on a rN−1≥2 donc 2 ≤rN−1rN≤ab
2N−1.
Donc ab ≥2Ndonc N≤log2(ab)et la conclusion.
Remarque – Ainsi si on veut calculer le pgcd de deux nombres `a 300 chiffres, le nombre de pas
est inf´erieur `a 2 log2(10300)=600 log2(10)<2000.
Remarquons aussi que log2(a)est moins que le nombre de chiffres de adans l’´ecriture en base
2, donc que l’algo. d’Euclide ne prend pas plus d’it´erations que le nombre de bits n´ecessaires pour
´ecrire aet ben base deux.
1.5.2 Etude plus fine du nombre maximum d’op´erations dans l’algorithme d’Euclide :
a)
Notation : Soit (a, b)∈N2, on notera C(a, b)le nombre d’op´erations i.e. de divisions
euclidiennes, dans l’algorithme d’Euclide appliqu´e `a aet b. En langage algorithmique,
le nombre C(a, b)s’appelle le coˆut ou la complexit´e de l’algorithme d’Euclide.
Exemple : Si baalors l’algorithme d’Euclide finit en une division euclidienne et C(a, b)=1.
5