Relation Bezout: au+bv= ab Calcul de u et v

Slides:



Advertisements
Présentations similaires
Algorithmique (suite)
Advertisements

Fonctions & procédures
Calculs de complexité d'algorithmes
EXERCICE 2.1 : APRES AVOIR DEMANDE LA SAISIE DUN NOMBRE POSITIF (ERREUR DE SAISIE A TRAITER). AFFICHER LE DECOMPTE EN PARTANT DE CE NOMBRE JUSQUÀ ARRIVER.
DECLARATION DE VARIABLES
Algorithmique et évaluation
Les Structures de contrôles itératives
CHAPITRE 2 Nombres entiers, initiation à l’arithmétique- Nombres rationnels.
ARITHMETIQUE Bernard Izard 3° Avon PG I - DIVISEURS
Cours dinformatique théorique INF f5 Alain Lecomte novembre 2005.
Enseigner l’arithmétique en série L
Modèle proies-prédateurs
Algorithme des différences Fraction irréductible
5. Les structures répétitives
Quelques algorithmes au lycée…
1)Boucle for 2)Boucle while
Utilisation des tableaux
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Un algorithme Dans un distributeur automatique de monnaie, on ne trouve que des billets de 10 et 5 €, des pièces de 2 et 1 €. Dans ce distributeur, on.
Formules de dérivation
Sommes.
Correction du reste des exercices
Principe de récurrence
12- Calcul du PGCD Algorithme des différences
Nombres entiers. Ensembles de nombres
CHAPITRE 1 Arithmétique
Chapitre 1 PGCD de deux nombres.
ARITHMETIQUE : NOMBRES PREMIERS, PGCD
STATISTIQUES – PROBABILITÉS
263 = 15 × = + × ARITHMETIQUE I DIVISEURS ET MULTIPLES
(connaissances pour l’enseignant)
Algorithme de Bellman-Ford
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
Eléments d’arithmétique dans l’ensemble des naturels
La géométrie tropicale
Arithmétique Classe 3e.
Le raisonnement par récurrence
Programmation linéaire en nombres entiers
Algorithme français courant de division. En division, il y a beaucoup moins d’algorithmes que pour les autres opérations. L’algorithme courant consiste.
STATISTIQUES – PROBABILITÉS
Je pose la division.
Une démonstration Utiliser les transformations (étude de figures).
1 1 Huitième journée Quelques algorithmes. 2 Définition Description des tâches pour que celles-ci soient aisément programmables Différent d’une méthode.
Leçon 20 PGCD, APPLICATIONS Fabienne BUSSAC.
Algorithme Calcul du PGCD Euclide.
Les fonctions de référence
Initiation à l’Algorithmique
Cours d'algorithmique 10 / Intranet 1 19 décembre 2006 Cours d’Algorithmique Logique de Hoare (fin) : Les boucles et les invariants.
ALGORITHMES CHEZ LES BABYLONIENS
Algorithme des différences
Algorithme des différences Fraction irréductible
Leçon Nombres entiers et rationnels
Réalisation d’un logiciel de Chiffrement RSA.
La pile de crêpes.
Algorithmique Tableaux de données
02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau.
Seconde 8 Module 3 M. FELT 22/09/2015.
Corrigé Interro 2.
Corrigé Interro 2.
Algorithmique Boucles et Itérations
Les nombre rationnels Mathématiques 9.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Division euclidienne - décimale
Quelques point de repère pour élaborer une progression concernant la technique opératoire de la division euclidienne (CM1 et CM2) I Rappels pour l’enseignant.
Chap.V RSA. I. Rappels Mathématiques La congruence Définition 1 a et b sont congrus modulo n s’ils ont même reste par la division par n. On note a≡b[n]
Introduction à la programmation (420-PK2-SL) cours 9 Gestion des applications Technologie de l’information (LEA.BW)
Complexité algorithmique
ALGORITHMES CHEZ LES BABYLONIENS
Introduction Le mathématicien
Algorithme d’Euclide pour le PGCD.
Transcription de la présentation:

Relation Bezout: au+bv= ab Calcul de u et v Algorithme Relation Bezout: au+bv= ab Calcul de u et v

Bezout :  (u,v)² / a u + b v = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab: 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) = ab 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab - 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 = ab a = 142, b = 38, a  b = 2 u = u[1] = -4 v = v[1] = 15

Bezout :  (u,v)² / a u + b v = ab - 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 = ab - 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