algorithmique (école d'ingénieur) · Chapitre 1 · Application directe du cours
Escalier de coût minimum
Glouton ou dynamique ? · niveau 2
Énoncé
Un escalier a marches numérotées ; poser le pied sur la marche coûte . Depuis la marche on peut monter sur la marche ou . On part du sol (une marche fictive , de coût nul) et l'on doit atteindre la marche .
- On note le coût minimum d'une montée du sol jusqu'à la marche incluse. Donner l'équation de récurrence des valeurs .
- Écrire le programme qui calcule le tableau et affiche une montée de coût minimum.
- Application : .
Corrigé
- On arrive sur la marche depuis ou depuis , et la montée jusqu'à cette marche précédente est elle-même de coût minimum (principe d'optimalité). Base : et (depuis le sol, on atteint directement les marches et ). Hérédité : ,
-
static int[] calculerM(int[] c) { int n = c.length;
int[] M = new int[n];
M[0] = c[0]; // base
if (n > 1) M[1] = c[1];
for (int j = 2; j < n; j++) // hérédité, j croissants
M[j] = Math.min(M[j-1], M[j-2]) + c[j];
return M;
}
static void amc(int[] M, int j) {
// affiche une montée de coût minimum du sol à la marche j
if (j <= 1) { System.out.print(" -> " + j); return; } // depuis le sol
amc(M, M[j-1] <= M[j-2] ? j-1 : j-2); // montée jusqu'à la marche précédente
System.out.print(" -> " + j); // puis la marche j
}
Calcul en , affichage en . -
c = [10, 15, 20, 5, 25, 10, 5]
M = [10, 15, 30, 20, 45, 30, 35]
cout minimum 35 : sol -> 1 -> 3 -> 5 -> 6
La montée évite les deux marches chères ( et ).
nom : M
valeurs : 10 15 30 20 45 30 35
colorier : 6
vert : 0..5
fleches : 4->6 5->6
legende : m(6) = min(m(5), m(4)) + 5 = min(30, 45) + 5 = 35
nom : c
valeurs : 10 15 20 5 25 10 5
vert : 1 3 5 6
fleches : 1->3 3->5 5->6
legende : montée sol → 1 → 3 → 5 → 6 : 15 + 5 + 10 + 5 = 35100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.