Soient deux nombres \(x \in \mathbb{Z}\) et \(n \in \mathbb{N}\).
Une façon naïve de calculer \(x^n\) 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 :
\begin{align*}
p(x,0) &= 1\\
p(x,n) &= p(x \cdot x,\frac{n}{2}) & \mbox{si $n$ est pair}\\
&= x \cdot p(x \cdot x,\frac{n-1}{2}) & \mbox{si $n$ est impair}\\
\end{align*}
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).
INGInious