159. ALGORITHME D’EUCLIDE. CALCUL DE PGCD ET DE COEFFICIENTS DE BÉZOUT. APPLICATIONS. Prérequis : anneaux, anneaux principaux, divisibilité I. Anneaux euclidiens [Skandalis algèbre p.18] DÉF-1. Un anneau 𝐴 commutatif et intègre est euclidien s’il existe une application 𝑠 de 𝐴\{0} dans ℕ tel que pour tout 𝑎 de 𝐴, et pour tout 𝑏 de 𝐴\{0}, il existe 𝑞 et 𝑟 dans 𝐴 tels que 𝑎 = 𝑏𝑞 + 𝑟 avec 𝑟 = 0 ou 𝑠(𝑟) < 𝑠(𝑏). DÉF-2. L’application 𝑠 est appelée stathme de l’anneau euclidien 𝐴. DÉF-3. L’égalité 𝑎 = 𝑏𝑞 + 𝑟 est appelée division euclidienne de 𝑎 par 𝑏 dans 𝐴. EX-4. Les anneaux ℤ, 𝕂[𝑋] et ℤ[𝑖] sont euclidiens de stathmes respectifs la valeur absolue, le degré et le module. PROP-5. Tout anneau euclidien est principal (ie tout idéal de cet anneau est principal). COR-6. Dans l’anneau ℤ[𝑋], il n’y a pas de division euclidienne. Par commodité, les définitions et algorithmes seront présentés par la suite dans l’anneau ℤ. II. PGCD et algorithme d’Euclide [Skandalis algèbre p.2] DÉF-7. Soit (𝑎, 𝑏) ∈ ℤ²\{(0; 0)}. On appelle PGCD de 𝑎 et 𝑏 le générateur de 𝑎ℤ + 𝑏ℤ, noté 𝑎 ∧ 𝑏. LEM-8. Soit (𝑎, 𝑏) ∈ ℤ²\{(0; 0)}. Alors 𝑎 ∧ 𝑏 = 𝑏 ∧ 𝑟 où 𝑟 est le reste de la division euclidienne de 𝑎 par 𝑏. ALGO-9. (D’EUCLIDE) Soit (𝑎, 𝑏) ∈ ℤ²\{(0; 0)}. Si 𝑎 = 0 alors 𝑎 ∧ 𝑏 = 𝑏. Si 𝑏 = 0 alors 𝑎 ∧ 𝑏 = 𝑎. Si 𝑎 = 𝑏 alors 𝑎 ∧ 𝑏 = 𝑎 = 𝑏. Si 𝑎 ≠ 0 et 𝑏 ≠ 0, supposons |𝑎| > |𝑏| > 0. On définit la suite (rn) par : 𝑟0 = 𝑎 ; 𝑟1 = 𝑏 ; et ∀𝑛 ≥ 2, tant que cela a un sens : 𝑟𝑛 est le reste de la division de 𝑟𝑛−2 par 𝑟𝑛−1 . Alors il existe un rang 𝑁 pour lequel 𝑟𝑁+1 = 0 et on a : 𝑎 ∧ 𝑏 = 𝑟𝑁 . EX-10. Montrer que 213 et 13 sont premiers entre eux à l’aide de l’algorithme d’Euclide. EX-11. Calculer les PGCD de 𝑋 3 − 1 et de 𝑋 2 − 3𝑋 + 2 dans l’anneau ℝ[𝑋]. EX-12. Calculer les PGCD de 4 + 12𝑖 et 9 + 3𝑖 dans l’anneau ℤ[𝑖]. THM-13. (DE LAMÉ) Le nombre d’étapes de l’algorithme d’Euclide ne dépasse pas 5𝑘 où 𝑘 est le nombre de chiffres de 𝑏 en base 10. III. Coefficients de Bézout et algorithme d’Euclide étendu THM-14. (DE BACHET-BÉZOUT) Pour tout (𝑎, 𝑏) ∈ ℤ²\{(0; 0)}, il existe des entiers 𝑢 et 𝑣 tels que 𝑎𝑢 + 𝑏𝑣 = 𝑎 ∧ 𝑏. THM-15. (DE BÉZOUT) Dans le cas 𝑑 = 1, l’implication ci-dessus est en fait une équivalence : 𝑎 ∧ 𝑏 = 1 si et seulement s’il existe des entiers 𝑢 et 𝑣 tels que 𝑎𝑢 + 𝑏𝑣 = 1. Pour calculer les coefficients 𝑢 et 𝑣 de Bézout, il suffit de « remonter » l’algorithme d’Euclide, ce qui est assez fastidieux. On préfère donc les calculer en introduisant de nouvelles suites dans l’algorithme. ALGO-16. (D’EUCLIDE ÉTENDU) On définit conjointement à la suite (𝑟𝑛 ) des restes celle (𝑞𝑛 ) des quotients (à partir de 𝑛 = 2), ainsi que : (𝑢𝑛 ) définie par : 𝑢0 = 1 et 𝑢1 = 0 ∀𝑛 ≥ 2, 𝑢𝑛 = 𝑢𝑛−2 − 𝑞𝑛 𝑢𝑛−1 (𝑣𝑛 ) définie par : 𝑣0 = 0 et 𝑣1 = 1 ∀𝑛 ≥ 2, 𝑣𝑛 = 𝑣𝑛−2 − 𝑞𝑛 𝑣𝑛−1 Alors on obtient des coefficients de Bézout au rang N : 𝑎 𝑢𝑁 + 𝑏 𝑣𝑁 = 𝑟𝑁 = 𝑎 ∧ 𝑏 EX-17. Calculer des coefficients de Bézout pour les entiers 213 et 13. 𝑛 𝑎𝑛 = 𝑏𝑛 × 𝑞𝑛 + 𝑟𝑛 𝑢𝑛 𝑣𝑛 𝑎 𝑢𝑛 + 𝑏 𝑣𝑛 = 𝑟𝑛 0 213 1 0 213 = 213 × 1 + 13 × 0 1 13 0 1 13 = 213 × 0 + 13 × 1 2 213 13 16 5 1 –16 3 13 5 2 3 –2 33 5 = 213 × 1 + 13 × (−16) 3 = 213 × (−2) + 13 × 33 4 5 3 1 2 3 –49 2 = 213 × 3 + 13 × (−49) 5 3 2 1 1 –5 82 1 = 213 × (−5) + 13 × 82 6 2 1 2 0 13 –213 0 = 213 × 13 + 13 × (−213) IV. Applications 1) Applications directes EX-18. Résoudre l’équation diophantienne 37𝑥 − 27𝑦 = 4. EX-19. Pour défiler à Rome, un centurion demande à ses soldats : de se ranger par lignes de 3 mais il en reste 2 ; de se ranger par lignes de 5, mais il en reste 2 une nouvelle fois ; de se ranger par lignes de 8, mais il en reste 7. Combien sont-ils ? 2) Développement d’un rationnel en fraction continue PROP-20. Un nombre est rationnel si et seulement si son développement en fraction continue est fini. 𝑎 = 𝑞2 + 𝑏 𝑞3 + 1 1 …+ = [𝑞2 , 𝑞3 , … , 𝑞𝑁 , 𝑞𝑁+1 ] 1 𝑞𝑁 + 1 𝑞𝑁+1 EX-21. Donner le développement en fraction continue de 213 13 . 213 5 1 1 1 1 = 16 + = 16 + = 16 + = 16 + = 16 + = [16,2,1,1,2] 13 3 1 1 13 13 2 + 2 + 2 + 2 1 5 5 1+3 1+ 1 1+2 EX-22. Montrer à l’aide des fractions continues que √2 n’est pas rationnel. 3) Version matricielle de l’algorithme ALGO-23. En gardant les mêmes notations, on peut mettre l’algorithme sous forme matricielle. 𝑎 𝑞 ( )=( 2 𝑏 1 1 𝑏 )( ) 0 𝑟2 𝑎 𝑞 ( )=( 2 𝑏 1 1 𝑞3 )( 0 1 On remarque que : puis on réitère : 1 𝑟2 𝑞 ) (𝑟 ) = ( 2 3 0 1 { 1 𝑞3 )( 0 1 𝑎 =𝑥×𝑑 𝑏 =𝑤×𝑑 𝑥 1 𝑟𝑁 )( ) = ( 0 𝑤 0 1 𝑞 ) … ( 𝑁+1 0 1 et : | 𝑥 𝑤 𝑣 𝑑 )( ) 𝑢 0 𝑣 | = 𝑥𝑢 − 𝑤𝑣 = (−1)𝑁 𝑢 donc : 𝑥𝑑𝑢 − 𝑤𝑑𝑣 = (−1)𝑁 𝑑 donc : 𝑎𝑢 − 𝑏𝑣 = (−1)𝑁 𝑑 on a trouvé une relation de Bézout EX-24. Construire un exercice à donner aux élèves : 7 ( 1 utilisant 4 divisions euclidiennes ayant pour quotients successifs 7, 4, 2 puis 5 ; donnant un PGCD de 3. 1 4 1 2 1 5 1 )( )( )( ) = (354 0 1 0 1 0 1 0 49 65) 9 puis : 𝑎 = 354 × 3 = 1 062 𝑏 = 49 × 3 = 147 et 9𝑎 − 65𝑏 = 3 DÉVELOPPEMENT : THÉORÈME DE LAMÉ [Skandalis algèbre p.2] Le nombre d’étapes de l’algorithme d’Euclide ne dépasse pas 5𝑘 où 𝑘 est le nombre de chiffres de l’écriture en base 10 de 𝑏. Autrement dit, si 𝑏 < 10𝑘 alors on fera moins de 5𝑘 divisions euclidiennes. Quelques notations & résultats préliminaires 1) On note 𝐹𝑛 les termes de la suite de Fibonacci tels que : 2) Rappels sur le nombre d’or : 𝜑 = 1+√5 2 𝐹0 = 0 et 𝐹1 = 1 ∀𝑛 ≥ 2, 𝐹𝑛 = 𝐹𝑛−1 + 𝐹𝑛−2 solution de 𝑥² − 𝑥 − 1 = 0 donc : 𝜑² = 𝜑 + 1 1 𝜑 = 1+𝜑 3) On montre par récurrence que ∀𝑛 > 0 on a : 𝐹𝑛 ≥ 𝜑𝑛−2 Démonstration 1) À toute étape de l’algorithme on a : 𝑟𝑛+2 = 𝑟𝑛 − 𝑞𝑛+2 𝑟𝑛+1 et 𝑞𝑛+2 ≥ 1 donc : 𝑟𝑛+1 + 𝑟𝑛+2 = 𝑟𝑛+1 + 𝑟𝑛 − 𝑞𝑛+2 𝑟𝑛+1 = 𝑟𝑛 − 𝑟𝑛+1 (𝑞𝑛+2 − 1) ≤ 𝑟𝑛 2) On note 𝑁 le nombre d’étapes de l’algorithme, comme 𝑟0 et 𝑟1 ne sont pas obtenus par division, on le termine avec : 𝑟𝑁−1 = 𝑟𝑁 × 𝑞 + 0 avec 𝑞 ≥ 2 𝑟𝑁+1 = 0 𝑟𝑁 ≥ 1 = 𝐹2 𝑟𝑁−1 ≥ 2𝑟𝑁 ≥ 2 = 𝐹3 𝑟𝑁−2 ≥ 𝑟𝑁−1 + 𝑟𝑁 ≥ 𝐹2 + 𝐹3 = 𝐹4 𝑟𝑁−3 ≥ 𝑟𝑁−2 + 𝑟𝑁−1 ≥ 𝐹3 + 𝐹4 = 𝐹5 … 𝑏 = 𝑟1 = 𝑟𝑁−(𝑁−1) ≥ 𝐹𝑁+1 On vient de montrer que 𝑏 majore le nombre 𝑁 de divisions euclidiennes, par l’intermédiaire de la suite de Fibonacci. Par exemple, si on cherche le PGCD de 𝑎 et de 𝑏 < 10 000, on sait que 𝐹𝑁+1 ne peut pas dépasser 10 000 et il suffit de chercher dans la suite de Fibonacci l’indice maximal possible : 𝐹20 = 6765 et 𝐹21 = 10946 donc il y aura au maximum 19 étapes. 3) Résumons dans le cas où 𝑏 s’écrit avec 𝑘 chiffres : 10𝑘 > 𝑏 ≥ 𝐹𝑁+1 ≥ 𝜑𝑁−1 log(10𝑘 ) > log(𝜑𝑁−1 ) 𝑘 > (𝑁 − 1)log(𝜑) > 𝑁−1 5 𝑁 < 5𝑘 − 1 ≤ 5𝑘 Efficacité de la majoration Si on cherche par exemple le PGCD de 𝐹20 (4 chiffres) et 𝐹21 , on a besoin de 19 divisions (on est dans le « pire » cas où 𝑞 = 1 à chaque étape). On a quasiment le maximum prévu par Lamé : 4 × 5 = 20.