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écurrences 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).