algorithmique (école d'ingénieur) · Chapitre 1 · Exercice de TD
Zébulon change de ressort
Glouton ou dynamique ? · niveau 2
Énoncé
Zébulon peut maintenant sauter de , ou cases.
- Donner la nouvelle équation de récurrence des valeurs (base et hérédité, avec leurs domaines).
- Adapter les fonctions
calculerMetacmdu cours. - Quelle est la valeur maximum sur le ruban du cours ? Pourquoi est-elle plus grande qu'avec les sauts de ou ?
Corrigé
- Le dernier saut vers part de , ou (quand ces cases existent). Base : . Hérédité : ,
Toutes les cases sont désormais accessibles : plus besoin de . -
static int[] calculerM(int[] R) { int n = R.length;
int[] M = new int[n];
M[0] = R[0]; // base
for (int j = 1; j < n; j++) { // hérédité, j croissants
int best = M[j-1]; // arrivée depuis j-1
if (j >= 2) best = Math.max(best, M[j-2]); // depuis j-2
if (j >= 3) best = Math.max(best, M[j-3]); // depuis j-3
M[j] = best + R[j];
}
return M;
}
static void acm(int[] M, int j) {
// affiche un chemin de valeur maximum de 0 à j
if (j == 0) { System.out.print("0"); return; } // base
int p = j - 1; // case qui précède j
for (int d = 2; d <= 3; d++)
if (j - d >= 0 && M[j-d] > M[p]) p = j - d;
acm(M, p); // chemin jusqu'à p affiché
System.out.print(" -> " + j); // donc chemin jusqu'à j affiché
}
-
M = [1, 6, 7, 6, -13, -23, 26]
valeur maximum 26 : 0 -> 1 -> 2 -> 3 -> 6
La valeur passe de à : la case (valeur ), inaccessible avec des sauts de ou , peut maintenant être ramassée. Ajouter des possibilités ne peut qu'augmenter (au sens large) le maximum.
nom : R
valeurs : 1 5 1 -1 -20 -30 20
vert : 0..3 6
fleches : 0->1 1->2 2->3 3->6
legende : sauts de 1, 2 ou 3 : chemin 0 → 1 → 2 → 3 → 6, de valeur 26100 % 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.