Adloun

informatique (tronc commun des prépas scientifiques) · Chapitre 18 · Application directe du cours

Mesurer le chevauchement

La programmation dynamique · niveau 1 (application)

É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.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre