Le triangle de Pascal⚓︎
Exercice
Écrire une fonction récursive telle que pascal(n)
renvoie la liste des n + 1
premières lignes du triangle de Pascal.
Règles
- Le sommet est constitué du nombre \(1\).
- Chaque ligne commence et finit par \(1\).
- Chaque ligne, à partir de la deuxième, possède un élément de plus que la précédente.
- Chaque autre nombre est la somme des deux nombres :
- l'un situé juste au-dessus,
- l'autre situé juste au-dessus à gauche.
Indices
- Pour créer une liste, on peut écrire
[2, 3, 5, 7]
- Pour ajouter un
element
à uneligne
, on peut écrireligne.append(element)
- Pour ajouter une
ligne
à untriangle
de lignes, on peut écriretriangle.append(ligne)
- Pour obtenir la dernière ligne d'un
triangle
non vide de lignes, on peut écrireligne = triangle[-1]
###
def pascal(n):bksl-nl ...bksl-nlbksl-nlbksl-nlassert pascal(4) == [bksl-nl [1],bksl-nl [1, 1],bksl-nl [1, 2, 1],bksl-nl [1, 3, 3, 1],bksl-nl [1, 4, 6, 4, 1],bksl-nl]bksl-nlbksl-nl
Réponse
🐍 Script Python
def pascal(n):
"""Renvoie la liste des n + 1 premières lignes du triangle de Pascal"""
if n == 0:
return [[1]]
else:
triangle = pascal(n - 1)
base = triangle[-1]
derniere_ligne = [1]
for i in range(1, n):
derniere_ligne.append(base[i - 1] + base[i])
derniere_ligne.append(1)
triangle.append(derniere_ligne)
return triangle
assert pascal(4) == [
[1],
[1, 1],
[1, 2, 1],
[1, 3, 3, 1],
[1, 4, 6, 4, 1],
]