Informatique MPSI B Hoche
L’algorithme d’exponentiation rapidepermet de calculerae oùaet esont des nombres naturels en effectuant moins (beaucoup moins !) deemultiplications.
Le premier cas est celui où l’exposanteest une puissance de 2. Pour calculer
xm=a(2m)
on peut utiliser seulementm(au lieu de 2m) multiplications en remarquant que
x0=a, xm+1=x2m
Dans le cas général, on peut utiliser la décomposition deeen base 2. Les coefficients sont 0 ou 1 et seuls les 1 "comptent" dans le calcul de la puissance
e = c0+c121+c222+· · ·+cm2m
ae = ac0ac121· · ·acm2m ae = xi1xi2...
aveci1,i2 associés aux coefficients non nuls de la décomposition
1. Mettre en oeuvre le principe précédent pour calculer ae sur un exemple en décomposant e en base 2 (par une succession d’opérations sans chercher à former un programme). Vérifier en calculant directement.
2. On modifie légèrement l’algorithme de décomposition deeen base 2 en cal- culant toutes les puissances dea dont l’exposant est une puissance de 2 et en multipliant ces nombres lorsque c’est nécessaire. Ce nouvel algorithme est présenté dans le diagramme de la figure1 que vous devez traduire dans la syntaxe Maple.
Fig.1 – exponentiation rapide
Cette création est mise à disposition selon le Contrat
Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
1 Rémy Nicolai Aexporap