Pour aujourd’hui, il fallait avoir codé quelques fonctions dont une récursive sur les tableaux à double entrée.
Corrections individuelles pendant que d’autres avancent sur le projet ci-dessous. Le corrigé commenté en fin d’heure est disponible à la fin de cet article.
Back to projet Laby – le retour de la revanche
On avance sur ce projet. On finira lundi.
Pour ceux qui ont fini :
- Comparaison avec un autre procédé algorithmique utilisant une autre structure de données : la pile ou la file.
- Creuser un labyrinthe à l’aide d’un autre procédé de ce type.
from random import randint def tableau_aleatoire(n, p): return [[randint(0,9) for colonne in range(p)] for ligne in range(n)] def affiche(t, n, p): for ligne in t: for elt in ligne: print(elt, end = '\t') print() print() def tableau_des_max(T, n, p): return [[somme_max(T, ligne, colonne) for colonne in range(p)] for ligne in range(n)] def somme_max(T, i, j): if i == 0 and j == 0: return T[0][0] elif i == 0: return somme_max(T, 0, j - 1) + T[0][j] elif j == 0: return somme_max(T, i - 1, 0) + T[i][0] else: return max(somme_max(T, i - 1, j), somme_max(T, i, j - 1)) + T[i][j] T = tableau_aleatoire(6, 7) affiche(T, 6, 7) print("Le max des chemins est", somme_max(T, 5, 6)) print() affiche(tableau_des_max(T, 6, 7), 6, 7)