Terminale S - Spé Maths arithmétique
Programme d’arithmétique pour calculatrices
Principe de l’algorithme des coefficients de Bezout de deux entiers A et B
Voici une explication mathématique de l’algorithme d’Euclide étendu, c’est à dire de l’algorithme qui permet de trouver lepgcdde deux nombres donnés AetB, et de donner un couple d’entiersuetv tels que
Au+Bv=pgcd(A;B).
La suite des divisions euclidiennes successives permet de construire des suites (an)n∈N∗,(bn)n∈N∗, (qn)n∈N∗ et (rn)n∈N∗ telles que pour tout entiern≥1 on a an=bn×qn+rn , avec0≤rn< bn.
On a de plus les conditions initiales a1 = A, b1 =B; et les relations : an+1 = bn et bn+1 = rn du fait des divisions successives.
a1 = b1 × q1 + r1
a2 = b2 × q2 + r2
a3 = b3 × q3 + r3
...
an = bn × qn + rn
an+1 = bn+1 × qn+1 + rn+1
...
aN = bN × qN + rN aN+1 = bN+1 × qN+1 + 0
• On veut montrer que pour toutn≥1 il existe des entiersun et vn tels quern=A×un+B×vn.
Puisque la première division euclidienne donneA=B×q1+r1, on ar1=A×1−B×q1doncu1etv1existent car il suffit de poseru1= 1etv1=−q1.
On suppose qu’il existe des entiers un et vn tels quern=A×un+B×vn.
Et on suppose qu’au rang précédent on a aussi une telle relation :rn−1=A×un−1+B×vn−1. On a alors :
an+1=bn+1×qn+1+rn+1donc, en isolant le termern+1 dans cette égalité, on a : rn+1=an+1−bn+1×qn+1
Et puisque an+1=bn et bn+1 =rn, cela donnern+1=bn−rn×qn+1. Mais on sait quebn=rn−1=A×un−1+B×vn−1et rn=A×un+B×vn. Donc :
rn+1= (A×un−1+B×vn−1)−(A×un+B×vn)×qn+1
Et donc en réorganisant les multiples deAet de B :
rn+1=A×(un−1−un×qn+1) +B×(vn−1−vn×qn+1) Ainsi, si on pose un+1 =un−1−un×qn+1et vn+1=vn−1−vn×qn+1, on a bien
rn+1=A×un+1+B×vn+1
On définit ainsi par récurrence deux suites de coefficients(un)n∈N∗ et(vn)n∈N∗ telles que pour toutn∈Non a rn=A×un+B×vn.
Sachant qu’à partir d’un certain rangN+ 1le resterN+1 est nul, on a alorsrN =pgcd(A;B), le dernier reste non nul.
Et puisque rN =AuN +BvN, on a une relation de Bezout de la formeAu+Bv=pgcd(A;B).
Remarque : les suites(un)n∈N∗ et (vn)n∈N∗ sont donc définies par une relation de récurrence à deux termes : (un+1=un−1−un×qn+1
vn+1 =vn−1−vn×qn+1
1/ 2
Terminale S - Spé Maths arithmétique
En imposant deux valeurs "virtuelles" u0 = 0 et v0 = 1, ainsi qu’en prenant u1 = 1 et v1 = −q1, on a la possibilité de construire par récurrence les termes des suites(un)n∈Net(vn)n∈N. C’est ce que fait le programme proposé ci-après :
Programme TI
INPUT "A=",A INPUT "B=",B 1 →C
0 →D 0 →E 1 →F Lbl 1
INT(A/B)→Q A−B×Q→R DISP "ETAPE"
DISP "A",A DISP "B",B PAUSE DISP "Q",Q DISP "R",R PAUSE IF R=0 GOTO 2
C−Q×E→G D−Q×F →H DISP "U V"
DISP G,H PAUSE E→C F→D G→E H→F B→A R→B GOTO 1 LBL 2 DISP "FINI"
DISP "PGCD = "
DISP B
DISP "COUPLE DE BEZOUT : AU + BV = PGCD"
DISP E,F
Programme Casio
Lbl 0
"A="
?→A
"B="
?→B 1→C 0→D 0→E 1→F Lbl 1
Int(A÷B)→Q A−B×Q→R
"ETAPE"
"A,B"
A B
"Q,R"
Q R If R=0 Then Goto 2
IfEnd
C−Q×E→G D−Q×F →H
"U,V"
Q R E→C F →D G→E H →F B→A R→B Goto 1 Lbl 2
"FINI"’
"PGCD = "
B
"COUPLE DE BEZOUT" "AU + BV = PGCD"
E F Goto 0
2/ 2