Appels récursifs de Fibonacci (version naïve)
Calculer fib(n) en rappelant fib(n-1) et fib(n-2) semble élégant, mais refait sans cesse les mêmes calculs. Saisissez n pour mesurer le gaspillage.
- Valeur de F(30)
- 832 040
- Appels de la version récursive naïve
- 2 692 537
- Appels avec mémorisation
- 59
- Additions de la version itérative
- 29
- Durée de la version naïve
- 53,85 ms
Comment ça se calcule
Avec fib(0) = 0 et fib(1) = 1, le nombre d'appels C(n) vérifie C(n) = 1 + C(n-1) + C(n-2), ce qui donne C(n) = 2 F(n+1) - 1. Avec mémorisation, chaque valeur n'est calculée qu'une fois : 2n - 1 appels. La version itérative fait n - 1 additions.
Questions fréquentes
Pourquoi la version naïve est-elle si lente ?
Parce qu'elle recalcule les mêmes valeurs : fib(30) calcule par exemple fib(10) des milliers de fois.
Qu'est-ce que la mémorisation ?
Conserver chaque résultat déjà calculé pour le réutiliser au lieu de le recalculer, une technique appelée aussi mémoïsation.
Cas fréquents
Des exemples déjà remplis, avec leur explication :
- Fibonacci de 10 : combien d'appels ?
- Fibonacci de 40 : plus de 300 millions d'appels
- Fibonacci de 50 : hors de portée en version naïve
- Fibonacci de 0 et 1 : les cas de base
Intégrer cet outil sur votre site
Les résultats sont fournis à titre indicatif. Pour aller plus loin, découvrez les sites de la catégorie Sandbox et casse-têtes de l'annuaire et lisez le guide de cette catégorie.
Autres outils
- ISODate vers ISO 8601 et autres formatsUne date écrite de six façons
- WNuméro de semaine ISO et jour de l'annéeSemaine 53 ? Jour 365 ? Calcul pour une date
- 2^nPuissances de 2 et de 10 : ordres de grandeur2^n exact, nombre de chiffres et équivalent en puissance de 10
- 0xLongueur hexadécimale et bits d'une empreinte64 caractères hexadécimaux, c'est combien de bits ?
- 0,1Représentation d'un nombre à virgule (IEEE 754)Signe, exposant et mantisse de 0,1 en 64 ou 32 bits
- 01Combien de bits pour coder N valeursNombre de bits et d'octets pour distinguer N cas