Suite mathématique
Soit la suite définie par récurrence par :
On souhaite créer la fonction terme qui calcule le terme de cette suite au rang n.
On pourra utiliser une méthode itérative ou récursive.
Traduction d'une suite en algorithme
\(u_0=3\) signifie que pour \(n=0\) alors le terme \(u =3\). On initialise donc les variables n et u aux valeurs correspondantes.
Ensuite, connaissant le terme d'indice \(n\), on calcule le terme suivant, celui d'indice \(n+1\), grâce à l'instruction :
u = 5*u + 2
L'expression est exécutée en débutant par le membre de droite : 5*u + 2 est tout d'abord évalué, puis le résultat est affecté à la variable u. Cette variable contient donc successivement les différentes valeurs de \(u_n\).
Calculer un terme au rang n non nul revient donc à calculer chaque terme du rang \(1\) au rang \(n\).
assert ?
Le mot clé assert est utilisé en Python afin de vérifier que des propositions sont vraies.
Ainsi, l'instruction assert 3 + 5*7 == 38 permet de vérifier que l'expression 3 + 5*7 est bien évaluée à 38.
Si c'est le cas, le programme continue de se dérouler normalement. Dans le cas contraire, le programme est interrompu et une erreur est signalée.
range ?
La fonction range permet de générer une série de nombres entiers. On l'utilise régulièrement dans les boucles for. Elle a trois syntaxes différentes :
-
range(fin): génère les entiers compris entre0(inclus) etfin(exclu). On répète donc les instructionsfinfois ; -
range(debut, fin): génère les entiers compris entredebut(inclus) etfin(exclu) ; -
range(debut, fin, pas): génère les entiers compris entredebut(inclus) etfin(exclu) en les parcourant depasenpas.
Donc :
-
for i in range(5): parcourt les entiersidans[0, 1, 2, 3, 4]; -
for i in range(1, 5): parcourt les entiersidans[1, 2, 3, 4]; -
for i in range(1, 5, 3): parcourt les entiersidans[1, 4].
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)