Avec a et b dans Z, et d=PGCD(a,b), on a:
- d peut s'écrire comme combinaison linéaire de a et b.
-
Montrer que le PGCD(26,39) est 13.
-
Montrer qu'il existe i et j entiers relatifs tels que
- 26i+39j=13
Réponse
- 26=2×13, et 39=3×13, donc PGCD(26,39)=13.
- Avec i=−1 et j=1, on a ce qui est demandé.
Montrer qu'il existe i et j entiers relatifs tels que
- 13i+17j=1
Réponse
i=4 et j=−3 conviennent.
Rappel, avec a∈Z, on a : PGCD(a,0)=a.
Démontrer le théorème de Bachet-Bezout dans le cas particulier où b=0.
Réponse
On a :
1×a+0×0=a
On regarde la dernière étape de l'algorithme d'Euclide.
divmod(a,b)=(q,0), et b est le PGCD(a,b).
Montrer qu'il existe i et j tels que
a×i+b×j=b
Réponse
i=0 et j=1 conviennent.
-
On sait que 13×4+17×(−3)=1
-
Trouver une combinaison linéaire de 17 et 47 égale à 1.
Indice : divmod(47,17)=(2,13), ainsi 47=2×17+13
Réponse
On a 1×47+(−2)×17=13
On multiplie cette ligne par 4.
On a 4×1×47+4×(−2)×17=4×13
On déduit
4×1×47+4×(−2)×17=1−17×(−3)
Ainsi
4×47−8×17+(−3)×17=1
Et enfin
4×47−11×17=1
L'idée est par récurrence, de montrer qu'il est vrai à la dernière étape de l'algorithme d'Euclide, et qu'on peut remonter chaque étape...
-
On a déjà prouvé que le théorème est vrai à la dernière étape de l'algorithme d'Euclide.
-
On suppose que divmod(a,b)=(q,r) est une étape de l'algorithme d'Euclide, et qu'il existe une combinaison linéaire de b et r égale à d. Montrons qu'il existe une combinaison linéaire de a et b égale à d.
- Il existe u,v∈Z tel que bu+rv=d, d'où rv=d−bu.
- D'autre part a=bq+r, que l'on multiplie par v.
- Ainsi av=bqv+rv, et avec le premier point, on a :
- av=bqv+(d−bu) qui se réécrit
- av+b(u−qv)=d.
- Ce qui prouve que d est une combinaison linéaire de a et b.
Ce théorème doit être retenu et compris sous ses deux aspects importants.
- L'aspect théorique qui dit qu'il existe une telle combinaison linéaire.
- L'aspect pratique qui permet de déterminer concrètement cette combinaison linéaire.
Les deux sont très utilisés !
Donner une combinaison linéaire de 91 et 35 égale à PGCD(91,35).
Correction
Donner une combinaison linéaire de 16 et 52 égale à PGCD(16,52).
Donner une combinaison linéaire de 13 et 15 égale à 1. En déduire un inverse de 15 modulo 13.
def euclide(a, b):
R, U, V, r, u, v = a, 1, 0, b, 0, 1
while r:
q = R//r
R, U, V, r, u, v = r, u, v, R - q*r, U - q*u, V - q*v
return R, U, V
Dans cet algorithme, R est le résultat du calcul du PGCD(a,b) par l'algorithme d'Euclide vu au cours précédent.
D'autre part, à chaque tour, on a que r est une combinaison linéaire de a et b : en effet r=au+bv tient à chaque tour de boucle.
a(U−qu)+b(V−qv)=
aU+bV−q(au+bv)=
R−qr=
La prochaine valeur de r
Attention. Si on a au+bv=d, cela ne signifie pas que PGCD(a,b)=d, mais plutôt que d est un multiple de ce PGCD.
Remarque. Avec PGCD(a,b)=d.
L'équation au+bv=0 possède une solution évidente a×(−b)+b×a=0,
mais on a aussi a×d−b+b×da=0.
Ainsi, par combinaison linéaire, on déduit que
a×(u−kdb)+b×(v+kda)=d pour tout entier k, ce qui prouve qu'il y a une infinité de solutions à l'équation au+bv=a∧b.
Définition. Deux nombres a et b sont dits premiers entre eux, si leur PGCD est égal à 1.
Dans ce cas la fraction ba est irréductible.
Proposition. Pour tous entiers (a,b), on a:
PGCD(a,b)=1⟺∃u,v∈Z,au+bv=1
Preuve : Un sens est donné directement par le théorème précédent.
Pour l'autre sens, on note PGCD(a,b)=d, a=da′, b=db′.
Si au+bv=1, alors da′u+db′v=1, et donc d∣1,
et ainsi d=1, ie a et b sont premiers entre eux.
Lemme de Gauss. Soit a,b,c∈Z, alors
a∣bcPGCD(a,b)=1}⟹a∣c
Preuve : On a bc=ka et au+bv=1, d'où
acu+bcv=c, et donc acu+kav=c, et enfin a(cu+kv)=c,
qui prouve que a∣c.
Proposition Soit a,b,c∈Z, alors
a∣c, et b∣cPGCD(a,b)=1}⟹ab∣c
Preuve : On a c=ka, c=lb et au+bv=1, d'où
auc+bvc=c, et donc aulb+bvka=c, et enfin ab(ul+vk)=c,
qui prouve que ab∣c.
Remarque. Chercher des contre-exemples !
Avec a=0, b=0 et c fixés dans Z, discutons des solutions de cette équation (E).
- Si PGCD(a,b)∤c, alors il n'y a pas de solutions.
- Si PGCD(a,b)∣c, alors on écrit d=PGCD(a,b), a=a′d, b=b′d et c=c′d.
On a PGCD(a′,b′)=1, et les solutions de (E) sont les mêmes que celles de :
(E′)a′x+b′y=c′
On s'inspire de la remarque faite suite au programme Python (Euclide étendu) pour construire l'ensemble des solutions.