Relation Bezout: au+bv= ab Calcul de u et v Algorithme Relation Bezout: au+bv= ab Calcul de u et v
Bezout : (u,v)² / a u + b v = ab - Théorie Le calcul du PGCD de 2 nombres a et b par la méthode d’Euclide: On pose r(0) = a, r(1) = b et r(k) la suite des restes dans les divisions euclidiennes qui aboutira à 0: EXEMPLE: 142 = 38 × 3 + 28 38 = 28 × 1 + 10 28 = 10 × 2 + 8 10 = 8 × 1 + 2 8 = 2 × 4 + 0 r(0) = r(1) × q(1) + r(2) avec 0 ≤ r(2) < r(1) r(1) = r(2) × q(2) + r(3) avec 0 ≤ r(3) < r(2) …. r(k-1) = r(k) × q(k) + r(k+1) avec 0 ≤ r(k+1) < r(k) k q r - 142 1 3 38 2 28 10 4 8 5 n = 5 142 38 = 2 r(n-2) = r(n-1) × q(n-1) + r(n) avec 0 ≤ r(n) < r(n-1) r(n-1) = r(n) × q(n) + 0
On a donc u = - 4 et v = 15 et 142 (-4) + 38 15 = 142 38 = 2 Bezout : (u,v)² / a u + b v = ab - Théorie On cherche les entiers u et v tels que u × r(0) + v × r(1) = r(n) : Voyons cela empiriquement… On cherche u et v tels que 142×u + 38×v = 2 EXEMPLE: 142 = 38 × 3 + 28 38 = 28 × 1 + 10 28 = 10 × 2 + 8 10 = 8 × 1 + 2 8 = 2 × 4 + 0 10 = 8 × 1 + 2 donc 10 × 1 - 8 × 1 = 2 28 = 10 × 2 + 8 donc 28 - 10 × 2 = 8 10 - 8 = 2 donc 10 – (28 - 10×2) = 2 c’est-à-dire 28 × (-1) + 10 × 3 = 2 38 = 28 × 1 + 10 donc 38 - 28 × 1 = 10 28 × (-1) + 10 × 3 = 2 donc -28 + (38 - 28×1) ×3 = 2 c’est-à-dire 38 × 3 + 28 × (-4) = 2 k q r - 142 1 3 38 2 28 10 4 8 5 n = 5 142 38 = 2 142 = 38 × 3 + 28 donc 142 - 38 × 3 = 28 38 × 3 + 28 × (-4) = 2 donc 38 × 3 + (142 - 38×3) ×(-4) = 2 c’est-à-dire 142 × (-4) + 38 × 15 = 2 (142 × (-4) = - 568 et 38 × 15 = 570) On a donc u = - 4 et v = 15 et 142 (-4) + 38 15 = 142 38 = 2
Bezout : (u,v)² / a u + b v = ab - Théorie On cherche les entiers u et v tels que u × r(0) + v × r(1) = r(n) (PGCD): Démonstration On considère les suites u(k) et v(k) tels que: v(n-1) = - q(n-1) et u(n-1) = 1 Pour tout entier k de {1;2;… n-1}, v(k-1) = - v(k) × q(k-1) + u(k) u(k-1) = v(k) Par une récurrence descendante, on va montrer que Pour tout entier k de {1;2;… n-1}, r(k-1) × u(k) + r(k) × v(k) = r(n) Dans ce cas on aura pour k =1 : r(0) × u(1) + r(1) × v(1) = r(n) Les u et v cherchés seront donc u(1) et v(1)
Bezout : (u,v)² / a u + b v = ab - Théorie On considère les suites u(k) et v(k) tels que u(n-1) = 1 et v(n-1) = - q(n-1) et pour tout entier k de {1;2;… n-1}, v(k-1) = - v(k) × q(k-1) + u(k) et u(k-1) = v(k) On va démontrer par récurrence que pour tout entier k de {1;2;… n-1}, r(k-1) × u(k) + r(k) × v(k) = r(n) Initialisation: Voyons si cela est vrai au rang n-1 c’est-à-dire que r(n-2) × u(n-1) + r(n-1) × v(n-1) = r(n) On sait que r(n-2) = r(n-1) × q(n-1) + r(n) Donc : 1 × r(n-2) - q(n-1) × r(n-1) = r(n) C’est-à-dire, avec u(n-1) et v(n-1): u(n-1) × r(n-2) + v(n-1) × r(n-1) = r(n) CQFD Suite des divisions euclidiennes r(0) = r(1) × q(1) + r(2) r(1) = r(2) × q(2) + r(3) … r(k-1) = r(k) × q(k) + r(k+1) … r(n-2) = r(n-1) × q(n-1) + r(n) r(n-1) = r(n) × q(n) + 0
Donc r(k-2) × u(k-1) + r(k-1) × v(k-1) = r(n) CQFD Bezout : (u,v)² / a u + b v = ab - Théorie On considère les suites u(k) et v(k) tels que v(n-1) = - q(n-1) et u(n-1) = 1 et pour tout entier k de {1;2;… n-1}, v(k-1) = - v(k) × q(k-1) + u(k) et u(k-1) = v(k) Démonstration de: Pour tout entier k de {1;2;… n-1}, r(k-1) × u(k) + r(k) × v(k) = r(n) Récurrence descendante: On suppose que c’est vrai au rang k: r(k-1) × u(k) + r(k) × v(k) = r(n) On veut que ce soit vrai au rang k-1: r(k-2) × u(k-1) + r(k-1) × v(k-1) = r(n) On sait que r(k-2) = r(k-1) × q(k-1) + r(k) et r(k-1) × u(k) + r(k) × v(k) = r(n) Donc : r(k-2) - q(k-1) × r(k-1) = r(k) qu’on injecte dans la 2ème égalité: r(k-1) × u(k) + (r(k-2) - q(k-1) × r(k-1))× v(k) = r(n) C’est-à-dire, en regroupant les r(k-1): r(k-1) × [ u(k) - q(k-1) × v(k) ] + r(k-2) × v(k) = r(n) Or v(k-1) = - v(k) × q(k-1) + u(k) et u(k-1) = v(k) Donc r(k-2) × u(k-1) + r(k-1) × v(k-1) = r(n) CQFD Suite des divisions euclidiennes r(0) = r(1) × q(1) + r(2) r(1) = r(2) × q(2) + r(3) … r(k-2) = r(k-1) × q(k-1) + r(k) r(k-1) = r(k) × q(k) + r(k+1) … r(n-2) = r(n-1) × q(n-1) + r(n) r(n-1) = r(n) × q(n) + 0
Il reste à écrire l’algorithme servant à calculer u et v. Bezout : (u,v)² / a u + b v = ab - Théorie On vient de démontrer que les suites u(k) et v(k) tels que v(n-1) = - q(n-1) et u(n-1) = 1 et k{1;2;… n-1}, v(k-1) = -v(k)×q(k-1)+u(k) et u(k-1) = v(k) vérifient : k{1;2;… n-1}, r(k-1) × u(k) + r(k) × v(k) = r(n) Et donc en particulier, pour k = 1: r(0) × u(1) + r(1) × v(1) = r(n) Ce qui permet de trouver les coefficient u et v tel que a.u + b.v = ab: u = u(1) et v = v(1) Pour cela on pose r(0) = a, r(1)=b et on trouve les restes dans les divisions euclidiennes successives: r(0) = r(1) × q(1) + r(2) r(1) = r(2) × q(2) + r(3) … r(k-2) = r(k-1) × q(k-1) + r(k) r(k-1) = r(k) × q(k) + r(k+1) … r(n-2) = r(n-1) × q(n-1) + r(n) r(n-1) = r(n) × q(n) + 0 On a alors r(n) = ab Il reste à écrire l’algorithme servant à calculer u et v.
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n: nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n N° r q u v
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 1 N° r q u v 1 2 3 4 5 6 142 38
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 1 N° r q u v 142 1 38 2 3 4 5 6 On a : n=1 et r[n] = 38 r[n] >0, donc on entre dans la boucle
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 1 2 N° r q u v 142 1 38 2 3 4 5 6 3 28 On a : n=1 et r[n-1] = 142, r[n] = 38 142 = 38 × 3 + 28 Donc q[1] = 3 et r[2] = 28 n+1 = 2
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 2 N° r q u v 142 1 38 3 2 28 4 5 6 On a : n=2 et r[n] = 28 r[n] >0, donc on entre dans la boucle
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 2 3 N° r q u v 142 1 38 3 2 28 4 5 6 1 10 On a : n=2 et r[n-1] = 38, r[n] = 28 38 = 28 × 1 + 10 Donc q[2] = 1 et r[3] = 10 n+1 = 3
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 3 N° r q u v 142 1 38 3 2 28 10 4 5 6 On a : n=3 et r[n] = 10 r[n] >0, donc on entre dans la boucle
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 3 4 N° r q u v 142 1 38 3 2 28 10 4 5 6 2 8 On a : n=3 et r[n-1] = 28, r[n] = 10 28 = 10 × 2 + 8 Donc q[3] = 2 et r[4] = 8 n+1 = 4
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 4 N° r q u v 142 1 38 3 2 28 10 4 8 5 6 On a : n=4 et r[n] = 8 r[n] >0, donc on entre dans la boucle
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 4 5 N° r q u v 142 1 38 3 2 28 10 4 8 5 6 1 2 On a : n=4 et r[n-1] = 10, r[n] = 8 10 = 8 × 1 + 2 Donc q[4] = 1 et r[5] = 2 n+1 = 5
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 5 N° r q u v 142 1 38 3 2 28 10 4 8 5 6 On a : n=5 et r[n] = 2 r[n] >0, donc on entre dans la boucle
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 5 6 N° r q u v 142 1 38 3 2 28 10 4 8 5 6 4 On a : n=5 et r[n-1] = 8, r[n] = 2 8 = 2 × 4 + 0 Donc q[5] = 4 et r[6] = 0 n+1 = 6
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 6 N° r q u v 142 1 38 3 2 28 10 4 8 5 6 On a : n=6 et r[n] = 0 donc on sort de la boucle On a: a b = r[n-1] = 2
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 6 4 N° r q u v 142 1 38 3 2 28 10 4 8 5 6 1 -1 n – 2 = 4 k 1 u[k] - q[k] = -4 v[k]
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 4 6 N° r q u v 142 1 38 3 2 28 10 4 8 -1 5 6 On a : k = 4 > 1 donc on entre dans la boucle
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 4 6 3 N° r q u v 142 1 38 3 2 28 10 4 8 -1 5 6 -1 3 k = 4 –v[k]×q[k-1]+u[k]= 1*2+1 =3 v[k-1] v[k] = -1 u[k-1] k – 1 = 3 k
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 3 6 N° r q u v 142 1 38 3 2 28 10 -1 4 8 5 6 On a : k = 3 > 1 donc on entre dans la boucle
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 3 6 2 N° r q u v 142 1 38 3 2 28 10 -1 4 8 5 6 3 -4 k = 3 –v[k]×q[k-1]+u[k]= -3*1-1= -4 v[k-1] v[k] = 3 u[k-1] k – 1 = 2 k
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 2 6 N° r q u v 142 1 38 3 2 28 -4 10 -1 4 8 5 6 On a : k = 2 > 1 donc on entre dans la boucle
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 2 6 1 N° r q u v 142 1 38 3 2 28 -4 10 -1 4 8 5 6 -4 15 k = 2 –v[k]×q[k-1]+u[k]= 4*3+3= 15 v[k-1] v[k] = -4 u[k-1] k – 1 = 1 k
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 1 6 N° r q u v 142 1 38 3 -4 15 2 28 10 -1 4 8 5 6 On a : k = 1 n’est pas > 1 donc on sort de la boucle
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 1 6 N° r q u v 142 1 38 3 -4 15 2 28 10 -1 4 8 5 6 On affiche : -4 × 142 + 15 × 38 = 2 qui est vrai
Fin Tant que ‘ Calcul des u et v Bezout : (u,v)² / a u + b v = ab - Algorithme de calcul de u et v Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme v(n-1) = - q(n-1) et u(n-1) = 1 k{1;2;… n-1}, u(k-1) = v(k) et v(k-1) = -v(k)×q(k-1)+u(k) a b k n 142 38 1 6 N° r q u v 142 1 38 3 -4 15 2 28 10 -1 4 8 5 6 C’est fini: a.u+b.v = ab a = 142, b = 38, a b = 2 u = u[1] = -4 v = v[1] = 15
Bezout : (u,v)² / a u + b v = ab - Mise en œuvre de l’algorithme sur algobox Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme
Bezout : (u,v)² / a u + b v = ab - Mise en œuvre de l’algorithme sur Excel Variables a, b, k, n : nombres entiers r, q, u, v: listes de nombres entiers Début d’algorithme Lire a et b 1 n : a r[0] : b r[1] ‘ Calcul des r et q Tant que r[n] > 0 quotient de r[n-1] / r[n] q[n] reste de r[n-1] par r[n] r[n+1] n+1 n Fin Tant que ‘ Calcul des u et v n-2 k : 1 u[k] : - q[k] v[k] Tant que k > 1 - v[k] × q[k-1] + u[k] v[k-1] v[k] u[k-1] k-1 k Fin Tant que Afficher u[1] «×» a «+» v[1] «×» b «=» r[n-1] Fin d’algorithme