suivant: Version récursive avec les
monter: Identité de Bézout par
précédent: Version itérative avec les
Table des matières
Index
Version récursive sans les listes
Si on utilise des variables globales pour A, B, D, U, V, T, on peut voir
la fonction Bezout comme calculant à partir de A B, des valeurs
qu'elle met dans U, V, D (AU+BV=D), grâce à une variable locale
Q.
On écrit donc une fonction sans paramètre : seule la variable Q doit être locale à la foncton alors que les autres variables A, B ...
sont globales.
Bezout fabrique U, V, D vérifiant A*U+B*V=D à partir de A et B.
Avant l'appel récursif (on présérve E(A/B)=Q et on met A et
B à jour ( nouvelles valeurs), après l'appel les variables U, V, D vérifient
A*U+B*V=D (avec A et B les nouvelles valeurs), il suffit
alors de revenir aux premières valeurs de
A et B en écrivant :
B*U+(A-B*Q)*V=A*V+B*(U-V*Q)
On écrit alors :
fonction Bezout
local Q
Si B != 0 faire
E(A/B)->Q
A-B*Q->R
B->A
R->B
Bezout
U-V*Q->W
V->U
W->V
sinon
1->U
0->V
A->D
fsi
ffonction
Documentation de giac écrite par Renée De Graeve