FONCTIONS RÉCURSIVES(2) TP
Fonctions récursives (2) – TP
12Exponentiation
On cherche à écrire un algorithme qui calculeanoùa∈Retn∈N. On parle dans ce cas d’exponentiation.
Il sera interdit d’utiliser l’opérationa**ndans cette partie !
Algorithme linéaire (naïf)
Pour écrire un algorithme naïf, on utilise l’expression :
an=a× · · · ×a
| {z }
nfois
.
Exercice 11.1
1. Écrire une fonctionexponentiationLinaire(a,n) qui prend en entrée un réelaet un entier n et qui renvoiean. On utilisera une fonction itérative.
2. Compter le nombre de multiplications effectuées par la fonction.
Exponentiation rapide
Un algorithme plus efficace repose sur l’égalité :
an=
³ an2´2
sinest pair a׳
an−12 ´2
sinest impair.
Exercice 11.2
1. Écrire une fonctionexponentiationRapide(a,n)qui prend en entré un réelaet un entiernet qui renvoie anen utilisant l’égalité précédente. On utilisera une fonction récursive.
2. Lorsquen=2poùp∈N, compter le nombre de multiplications effectuées par la fonction. Comparer avec le résultat obtenu dans l’exercice précédent.
G. BOUTARD 1 Lycée GAY-LUSSAC