Feuille de TP numéro 2 : algorithme d`Euclide

publicité
Préparation à l'agrégation
Année universitaire 2008-2009
Option calcul formel
Feuille de TP numéro 2 : algorithme d'Euclide
Exercice 1 : Ecrire deux procédures de calcul de pgcd,
une itérative, c'est à dire avec une boucle pour ou tant que
une récursive, c'est à dire qui s'appelle elle même en utilisant la relation
pgcd(a, b) = pgcd(b, a mod b).
Exercice 2 : Tirer deux nombres de 30000 chires au hasard (fonction rand de maple). Calculer leur
pgcd à l'aide des procédures précédentes. Que constate t'on ?
Comparer les temps de calcul avec la fonction déjà implémentée dans Maple. Trouver la fonction Maple qui
permet de trouver également les coecients de Bezout associés à ces deux grands nombres (les exemples
et la rubrique "See Also" sont très utiles dans l'aide de Maple).
Exercice 3 : Écrire un programme maple inv qui prend en entrée deux entiers positifs a et n et rend en
sortie l'inverse de a modulo n s'il existe et false sinon.
Exercice 4 : Soit f la fonction qui à x, y entiers tels que 1 ≤ y ≤ x associe le nombre de divisions
euclidiennes eectuées dans le calcul du pgcd de x et y par l'algorithme d'Euclide et soit g la fonction
dénie par
g(x) = max{f (x, y), 1 ≤ y ≤ x}
Le but de cet exercice est de vérier graphiquement que pour x entier
√
1+ 5
1
ln(x) où α =
g(x) ≤
ln(α)
2
Modier la procédure de l'exercice pour y intégrer le calcul de la fonction f .
Calculer f (34, 3), f (34, 15), f (34, 21).
Écrire une procédure maple pour le calcul de la fonction g .
Calculer g(3), g(5), g(8), g(13), g(21), g(34).
A l'aide de la commande plot, dessiner les points (x, g(x)) pour 2 ≤ x ≤ 30.
1
Intégrer au graphe précédent le graphe de la fonction qui à x associe ln(α)
ln(x)
Exercice 5 : Écrire un programme maple BezoutGeneral qui prend en entrée une liste de n entiers
[a1 , . . . , an ] et rend en sortie la liste [d, t1 , . . . , tn ] où
d = pgcd(a1 , . . . , an ) = t1 a1 + · · · + tn an .
Exercice 6 : Écrire une procédure maple chinois2 prenant quatre arguments a, b, m et n et qui renvoie
false si m et n ne sont pas premiers entre eux, et sinon, renvoie un entier congru à a modulo m et à b
modulo n.
Exercice 7 : Implémenter une fonction chinois prenant en argument deux tableaux d'entiers de même
taille [a1 , . . . , ak ] et [n1 , . . . , nk ] et renvoyant false si les ni ne sont pas premiers entre eux deux-à-deux
et un entier congru à ai modulo ni pour tout i sinon.
Téléchargement