24-NSIJ2G11-1
-
itineraire
est un attribut de la classeChemin
remplir_grille
est une méthode de la classeChemin
-
Les variables
a
etb
contiennent respectivement les valeurs 4 et 7. Le sujet présente une petite coquille, il faut corrigera = chemin_1.largueur
ena = chemin_1.largeur
. -
def tracer_chemin(self): self.remplir_grille() chaine = '' for ligne in self.grille: for case in ligne: chaine += case + ' ' chaine += '\n' print(chaine)
Ou pour ceux qui apprécient le beau code :
-
from random import choice def itineraire_aleatoire(m, n): itineraire = '' i, j = 0, 0 while i != m and j != n: # : oublié deplacement = choice('BD') # ou choice(['B', 'D']) itineraire += deplacement if deplacement == 'D': j += 1 else: i += 1 if i == m: itineraire = itineraire + 'D' * (n - j) if j == n: itineraire = itineraire + 'B' * (m - i) return itineraire
-
Pour un itinéraire de dimension \(1 × n\), il n'y qu'un seul sens de déplacement possible, aller à droite. Il n'existe donc qu'un seul chemin \(\underbrace{\texttt{DDD} \ldots \texttt{D}}_{n \text{ fois}}\). Ainsi, \(\boxed{N(1, n) = 1}\).
-
Dans une grille de taille \(m \times n\), le premier déplacement est au choix :
- Aller à droite, il reste alors à parcourir un chemin dans une grille de taille \(m \times n - 1\).
- Aller en bas, il reste alors à parcourir un chemin dans une grille de taille \(m-1 \times n\).
Le nombre total de chemins possibles est donc la somme des chemins possibles dans ces deux cas, d'où la relation \(\boxed{N(m, n) = N(m, n - 1) + N(m - 1, n)}\).