Fibonacci itératif
Exercice · OCaml (option informatique), chapitre 4 — Programmation impérative : références et boucles
Énoncé
Écrire fibo n () en avec deux références, et expliquer l'avantage sur la version doublement récursive du chapitre 3.
Corrigé
let fibo n =
let a = ref 0 and b = ref 1 in
for _i = 1 to n do
let s = !a + !b in
a := !b;
b := s
done;
!a
On fait avancer une « fenêtre » de deux termes consécutifs. fibo 0 , fibo 1 , fibo 6 . Coût : chaque terme est calculé une fois, là où la définition récursive naïve recalcule exponentiellement les mêmes valeurs.
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.