File failed to load: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/extensions/TeX/xypic.js

Mathjax

mercredi 24 juillet 2024

PGCD (3). Algorithme d'Euclide étendu (sous forme d'activité)

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.

  1. Démontrer que pour tout m\leq t, on a au_m+bv_m=r_m.
  2. Comment utiliser les suites (u_n) et (v_n) pour obtenirdes entiers u et v tels que au+bv=\mathrm{pgcd}(a,b).
  3. É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
On calcule les suites (r_n), (q_n), (u_n) et (v_n) :

(1) 2051=2\times 1001+49 ainsi 
  • 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
(2) 1001=20\times 49 +21

  • 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
(3) 49=2\times 21 +7

  • 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
(4) 21=3\times 7 +0

2051\times 41+1001\times (-84)= 7


Théorème de Bézout

Nous venons, grâce à l'algorithme d'Euclide étendu de montrer les deux théorèmes suivants.

Théorème (Identité de Bézout).

Soient a et b deux entiers relatifs. On note d=\textrm{pgcd}(a,b)
Il existe deux entiers u et v tels que au+bv=d

En conséquence, nous avons le théorème suivant.

On dit que deux entiers relatifs sont premiers entre eux si leur plus grand diviseur commun est 1. 

Théorème (Bézout).

Deux entiers relatifs a et b sont premiers entre eux si et seulement s'il existe deux entiers relatifs u et v tels que au+bv=1. 
 
Preuve.

Supposons que a et b sont premiers, alors, d'après l'identité de Bézout, il existe u et v tels que au+bv=1. Cela revient à dire que a et b n'ont pas d'autre diviseur commun positif que 1.

Réciproquement, supposons que au+bv=1. Si d est un diviseur commun de a et de b, on a 
a=da' et b=db'. On a donc da'+db'=1 d'où d(a'+b')=1. Si d est positif, d\leq 1 car d divise 1, et donc d=1. On en déduit que a et b sont premiers entre eux.



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