On exécute le script suivant. Quelle est la valeur finale de u ? Justifier en donnant les valeurs successives.
u = 2
for k in range(4):
u = 3*u - 1Voir la correction
range(4) fait prendre à k les valeurs 0, 1, 2, 3 : le corps de la boucle est exécuté quatre fois. À chaque passage, u est remplacé par 3*u - 1.
| passage | départ | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
u | 2 | 3 × 2 − 1 = 5 | 3 × 5 − 1 = 14 | 3 × 14 − 1 = 41 | 3 × 41 − 1 = 122 |
u est 122.Ce script calcule le terme u4 de la suite définie par u0 = 2 et un+1 = 3un − 1 : après k passages,
u contient uk (invariant de boucle). Avec range(5), on obtiendrait u5 = 365.