OCaml (option informatique) · Chapitre 13 · Application directe du cours
Fibonacci par table
Programmation dynamique · niveau 1 (application)
Énoncé
Écrire fibo n en remplissant un tableau (bas-haut), en .
Corrigé
let fibo n =
if n <= 1 then n
else begin
let dp = Array.make (n + 1) 0 in
dp.(1) <- 1;
for i = 2 to n do dp.(i) <- dp.(i - 1) + dp.(i - 2) done;
dp.(n)
end
Chaque dp.(i) est calculé une fois à partir des deux précédents : c'est la version bas-haut de la mémoïsation du chapitre 8. Coût , contre exponentiel pour la double récursion naïve.
Exercices semblables
- Distance d'édition corrigé
- Reconstruire les pièces du rendu corrigé
- Reconstruire la sous-suite commune corrigé
- Rendu de monnaie optimal corrigé
- Nombre de façons de rendre corrigé