Modéliser suites et ensembles avec des listes

Première générale Spé · Mathématiques Spé 1ère

À retenir

• Suite récurrente : on part de L = [u0], puis à chaque tour on calcule le terme suivant et on l'ajoute avec L.append(u). • Suite explicite : [f(n) for n in range(N + 1)] donne la liste des termes de u_0 à u_N. • Si la liste commence à u_0, L[k] contient u_k ; x in E teste l'appartenance à un ensemble représenté par une liste.

Le cours

1. Suite définie par récurrence Pour la suite u_0 = 2 et u_n+1 = 3u_n - 1, on range les termes dans une liste : on part du premier terme, puis chaque tour calcule le suivant et l'ajoute. def termes(n): u = 2 L = [u] for k in range(n): u = 3 * u - 1 L.append(u) return L termes(3) renvoie [2, 5, 14, 41], c'est-à-dire u_0, u_1, u_2, u_3 : la liste a n + 1 éléments et L[k] contient u_k. 2. Suite définie explicitement Si u_n = f(n), une compréhension suffit : pour u_n = n^2 + 1, [n**2 + 1 for n in range(5)] donne [1, 2, 5, 10, 17], soit u_0 à u_4. 3. Représenter un ensemble fini Un ensemble fini se représente par une liste sans doublon. On teste l'appartenance avec x in E et on construit une intersection par filtrage : A = [1, 2, 3, 4, 6, 12] B = [1, 2, 3, 6, 9, 18] C = [x for x in A if x in B] C vaut [1, 2, 3, 6] : les diviseurs communs de 12 et 18. Pour ajouter x sans créer de doublon, on écrit if x not in E: avant E.append(x). 4. Attention au décalage de rang Si la suite commence à u_1, la liste commence aussi par u_1 : L[0] contient alors u_1 et L[k] contient u_k+1.

Dans ce chapitre