Mesurer le chevauchement
Exercice · informatique (tronc commun des prépas scientifiques), chapitre 18 — La programmation dynamique
Énoncé
Instrumenter les fonctions de Fibonacci naïve et mémoïsée pour compter le nombre d'appels récursifs effectués. Donner les valeurs des compteurs pour , et . En déduire leurs lois de croissance respectives.
Corrigé
def fib_compte(n, compteur):
compteur[0] += 1
if n <= 1:
return n
return fib_compte(n - 1, compteur) + fib_compte(n - 2, compteur)
- Nombres d'appels mesurés :
- Pour : version naïve appels, version mémoïsée appels.
- Pour : version naïve appels, version mémoïsée appels.
- Pour : version naïve appels, version mémoïsée appels.
- Lois de croissance : La version naïve suit une croissance exponentielle proportionnelle à (où est le nombre d'or). La version mémoïsée présente une croissance linéaire valant exactement appels. Pour , l'approche mémoïsée est environ fois plus rapide.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.