Adloun

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 = 35

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →