Niveau: Supérieur, Licence, Bac+3
Licence de Mathématiques 2008--2009 L3 Algèbre effective td 2 : Inversibles modulo m, Calcul rapide de puissances Inversibles modulo m Calcul rapide de puissances Dans la suite on aura besoin de calculer des puissances modxn m avec , ,x n m entiers de grande taille. On a donc besoin d'un algorithme de calcul efficace. Exercice 6 : écrire une fonction qui rende xn en utilisant l'algorithme de calcul rapide de puissances expliqué en cours. Comparer graphiquement la vitesse de l'algorithme naïf par multiplications successives et de celui-ci. Solution > exponaif:=proc(x,n) local i,res; res:=1; for i from 1 to n do res:=res*x od; res end; exponaif := proc( ) end proc,x n local ;,i res ; ; := res 1 for to do end doi n := res ?res x res On initialise res à 1 et non à x pour que cette fonction marche quand n = 0. > exponaif(11,3),exponaif(11,0); ,1331 1 L'algorithme rapide : > exporap:=proc(x,n) if n=0 then 1 elif irem(n,2)=0 then exporap(x*x,iquo(n,2)) else x*exporap(x*x,iquo(n-1,2)) fi end; exporap ,x nproc( ) := =n 0 1if then =( )irem ,n 2
- puissances modulo
- then
- vitesse de l'algorithme naïf par multiplications successives
- vitesse de l'algorithme de l'exercice
- algorithme de calcul rapide de puissances
- exponaif:=proc
- elif irem