Adloun

algorithmique (école d'ingénieur) · Chapitre 5 · Exercice de TD

Le robot part de n'importe où

Chemins de valeur optimale · niveau 2

Énoncé

Le robot peut partir de n'importe quelle case de la ligne et doit arriver sur n'importe quelle case de la ligne ; ses déplacements sont NO, N et NE (il monte d'une ligne à chaque pas).

  • Écrire la récurrence de la valeur maximum d'un chemin qui arrive en . Où lire la réponse ?
  • Programmer et exécuter sur la grille du chapitre. Ce problème est le cœur du chapitre suivant.

Corrigé

  • Base. : (on peut partir de partout).

Hérédité. , : , les termes hors de la grille étant omis.

La réponse est : on arrive où l'on veut. -


for (int c = 0; c < C; c++) M[0][c] = G[0][c];             // base
for (int l = 1; l < L; l++)                                // par lignes croissantes
    for (int c = 0; c < C; c++) {
        int p = M[l - 1][c];
        if (c > 0) p = Math.max(p, M[l - 1][c - 1]);
        if (c < C - 1) p = Math.max(p, M[l - 1][c + 1]);
        M[l][c] = p + G[l][c];
    }

ligne 4 : [21, 22, 24, 29, 19]
ligne 3 : [11, 20, 21, 22, 8]
ligne 2 : [4, 11, 16, 11, -7]
ligne 1 : [-2, 1, 9, -11, -12]
ligne 0 : [-3, 8, -8, -2, -9]
Valeur maximum 29 : (0,1)->(1,2)->(2,2)->(3,3)->(4,3)

nom : M[4]
valeurs : 21 22 24 29 19
colorier : 3
legende : la réponse est le maximum de la dernière ligne : 29, en c = 3

C'est la récurrence du seam carving, au près.

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 →