Aller au contenu

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

  1. Le sommet est constitué du nombre \(1\).
  2. Chaque ligne commence et finit par \(1\).
  3. Chaque ligne, à partir de la deuxième, possède un élément de plus que la précédente.
  4. Chaque autre nombre est la somme des deux nombres :
    • l'un situé juste au-dessus,
    • l'autre situé juste au-dessus à gauche.

Indices

  1. Pour créer une liste, on peut écrire [2, 3, 5, 7]
  2. Pour ajouter un element à une ligne, on peut écrire ligne.append(element)
  3. Pour ajouter une ligne à un triangle de lignes, on peut écrire triangle.append(ligne)
  4. Pour obtenir la dernière ligne d'un triangle non vide de lignes, on peut écrire ligne = 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],
]