Cet article présente l'algorithme d'Euclide étendu. Il est rédigé sous forme d'activité pouvant être présenté comme un prolongement du cours de l'option maths expertes de terminales, il peut aussi être utilisé de manière indépendante.
Prérequis :
L'algorithme que nous allons présenter ci-dessous permet de calculer le PGCD $d$ de deux entiers $a$ et $b$, comme l'algorithme d'Euclide. Il permet de plus d'exhiber deux entiers $u$ et $v$ tels que
$$d=au+bv $$
Algorithme d'Euclide étendu (activité)
Soient $a$ et $b$ deux entiers naturels.
On écrit $a=bq+r$, avec $0\leq r<b $, $q$ et $r$ sont respectivement le quotient et le reste de la division euclidienne de $a$ par $b$.
On pose :
- $r_0=a$, $r_1=b$
- $u_0=1$, $u_1=0$
- $v_0=0$, $v_1=1$
Ensuite pour tout $n\geq 0$, tant que $r_{n+1}>0$ on définit
- $r_{n+2}$ est le reste de la division euclidienne de $r_{n}$ par $r_{n+1}$.
- $q_n$ est le quotient de la division euclidienne de $r_n$ par $r_{n+1}$
- $u_{n+2}=u_{n}-q_nu_{n+1}$
- $v_{n+2}=v_{n}-q_nv_{n+1}$
On rappelle d'après l'algorithme d'Euclide classique que la suite $(r_n)$ est décroissante et qu'il existe un entier $t$ tel que $r_{t+1}=0$, et que $r_t=\mathrm{pgcd}(a,b)$.
Questions.
- Démontrer que pour tout $m\leq t$, on a $au_m+bv_m=r_m$.
- Comment utiliser les suites $(u_n)$ et $(v_n)$ pour obtenirdes entiers $u$ et $v$ tels que $au+bv=\mathrm{pgcd}(a,b)$.
- Écrire une fonction Python appelée \verb|euclide_etendu| ayant pour arguments deux entiers \verb|a| et \verb|b| permettant de trouver des coefficients de Bézout $u,v$ tels que $$d=|a|u+|b|v $$
Solution
1) Faisons une démonstration par récurrence. On va faire une \textit{récurrence forte}. On pose pour tout $m\leq t$ : $$\mathcal P_m : \forall n\leq m, au_n+bv_n=r_n$$
(a) Initialisation.
- Au rang $0$, on a $au_0+bv_0=a\times 1 + b\times 0 = a$ et $r_0=a$.
- Au rang $1$, on a $au_1+bv_1=a\times 0 + b\times 1 =b$ et $r_1=b$.
On a donc bien $\mathcal P_0 $ (et même $\mathcal P_1 $).
(b) Hérédité.
Supposons pour un certain entier $m\leq t$ : $$\mathcal P_m : \forall n\leq m, au_n+bv_n=r_n$$ et montrons $$\mathcal P_{m+1} : \forall n\leq m+1, au_n+bv_n=r_n$$
Il reste juste à prouver $au_{m+1}+bv_{m+1}=r_{m+1}$.
On a en utilisant l'hypothèse de récurrence $\mathcal P_m $ avec $n=m-1$ et avec $n=m$,
$$\begin{array}{rcl} au_{m+1}+bv_{m+1}&=&a(u_{m-1}-q_{m-1}u_m)+b(v_{m-1}-q_{m-1}v_m) \\ &=&au_{m-1}+bv_{m-1}-q_{m-1}(au_m+bv_m) \\ &=&r_{m-1}-(u_{m+1}-q_{m-1}r_m\\ \end{array}$$
Comme $r_{m-1}=q_{m-1}r_m+r_{m+1} $, on obtient $au_{m+1}+bv_{m+1}=r_{m-1}-q_{m-1}r_m=r_{m+1}$.
L'hérédité est donc prouvée.
(c) Conclusion.
Par initialisation et hérédité, on a pour tout $m\leq t$ : $$\mathcal P_m : \forall n\leq m, au_n+bv_n=r_n$$
En particulier $\forall m\leq t, au_m+bv_m=r_m$.
2) Comme d'après l'algorithme d'Euclide $r_t=\mathrm{pgcd}(a,b)$, on a $au_t+bv_t=r_t=\mathrm{pgcd}(a,b)$. Ainsi $u_t$ et $v_t$ sont les coefficients de Bézout $u$ et $v$.
3) Voir ici.
Exemple.
Déterminer le plus grand diviseur $d$ commun de 2051 et 1001, et trouver $u$ et $v$ tels que $2051u+1001v=d$.
On pose :
- $r_0=2051$, $r_1=1001$
- $u_0=1$, $u_1=0$
- $v_0=0$, $v_1=1$
- $r_2=49$
- $q_0=2$
- $u_2=u_0-q_0 u_1=1-2\times 0=1$
- $v_2=v_0-q_0 v_1 =0-2\times 1=-2$
- $r_3=21$
- $q_1=20$
- $u_3=u_1-q_1 u_2=0-20\times 1=-20$
- $v_3=v_1-q_1 v_2 =1-20\times (-2)=41$
- $r_3=7$
- $q_2=2$
- $u_4=u_2-q_2 u_3=1-2\times (-20)=41$
- $v_4=v_2-q_2 v_3 =-2-2\times 41=-84$
Théorème de Bézout
Conclusion et suite
Le théorème de Bézout, nous assure l'existence d'une solution particulière à l'équation
$ax+by=d$, où $d=\mathrm{pgcd}(a,b)$ appelée équation diophantienne.
Nous verrons dans un autre article une méthode pour résoudre ce type d'équation.
Nous verrons aussi le théorème de Gauss, en conséquence du théorème de Bézout. Il nous permettra par la suite de s'intéresser à la décomposition d'un entier naturel en facteur premiers.
Aucun commentaire:
Enregistrer un commentaire