DUT Informatique
semestre 4
arithm´etique/cryptographie
L’algorithme d’Euclide
Math´ematiques
TP n◦1
Pour plus de lisibilit´e, mettre des parenth`eses autour de C(i) qui peut ˆetre n´egatif.
Rrepr´esente la liste des restes de l’algorithme d’Euclide, donc a, b et PGCD(a, b)
sont d´ej`a contenus dans Ret n’ont pas besoin d’ˆetre recalcul´e.
3. ´
Ecrire une fonction bool=verifie ligne bezout(C,R) qui renvoie :
%T si on a bien PGCD(a, b) = PiC(i)×R(i) et%F sinon.
Indication : on doit tester que le R(i) = PGCD(a, b)dans Rest bien le PGCD(a, b)
et que la somme PiC(i)×R(i)est bien ´egale `a ce PGCD(a, b)
4. ´
Ecrire une fonction [u,v,d]=Bezout TD(a,b) qui calcule les coefficients d’une
identit´e de Bezout au +bv =dentre les nombres aet b`a partir de la m´ethode
utilis´ee en TD (cf. ci-dessous). On affichera chaque ligne du calcul dans la console
de scilab.
✬
✫
✩
✪
fonction [u, v, d] = Bezout TD(a, b)
Calculer la liste Rdes restes, celle Qdes quotients,
et d= PGCD(a, b) par l’algorithme d’Euclide
R= [a,b,r1,...,rn−1,rn,0]; Q= [0,0,q1,...,qn−1,qn,qn+1]
initialiser la liste des coefficients Ctelle que d=PiC(i)×R(i)
en partant de l’´equation d= 1 ×rn, ce qui donne :
C= [0,0,0,..., 0,1,0]
tant que Cn’est pas de la forme [u,v,0,...,0]faire
modifier Cen utilisant les r`egles de simplification
obtenues `a chaque ´etape de l’algorithme d’Euclide :
pour i= 3 jusqu’`a fin de Cfaire
modifier C(i-2) , C(i-1) et C(i) avec
ri=ri−2−ri−1×qi
fin faire
afficher dans la console la nouvelle ´equation obtenue
fin faire
r´ecup´erer les coefficients de l’identit´e de Bezout au +bv =d
Indication : Pour faciliter la conception de la fonction on utilisera :
•bool=verifie ligne bezout(C,R) pour v´erifier les calculs `a chaque ´etape
•ligne bezout(C,R) pour afficher l’´equation dans la console
4