Soient deux nombres x∈Z et n∈N.
Une façon naïve de calculer xn serait de multiplier n fois x par lui-même.
Mais on peut faire bien plus efficace que cela !
Il suffit d'utiliser les équations de récurrence suivantes :
p(x,0)=1p(x,n)=p(x⋅x,n2)si n est pair=x⋅p(x⋅x,n−12)si n est impair
On vous demande d'implémenter un algorithme avec récursion. Avant d'élaborer votre algorithme, détaillez :
- le cas de base,
- comment traiter le cas de base,
- comment construire la solution actuelle (taille n) si je connais une solution pour un problème plus petit (par exemple de taille n-1).