Une moyenne écrite à la main
Exercice supplémentaire · niveau 1 (application) · mathématiques (ECT 2e année), chapitre 12 — Informatique et travaux pratiques · Le socle Python
Énoncé
Écrire une fonction Python moyenne(t, n) qui rend la moyenne des n premiers termes du tableau t, sans utiliser np.mean ni np.sum. Tester la fonction sur le tableau des entiers de à .
Corrigé
Le principe. Une moyenne est une somme divisée par un effectif. On accumule donc les termes un à un dans une variable, puis on divise.
La fonction.
def moyenne(t, n):
s = 0
for i in range(n):
s = s + t[i]
return s / n
Comment elle fonctionne. La variable s est initialisée à — c'est l'élément neutre de l'addition, donc le bon point de départ. La boucle for parcourt les indices , soit exactement n termes, puisque range(n) s'arrête avant n. À chaque tour, le terme courant s'ajoute à s. La division finale n'a lieu qu'une fois, après la boucle : la placer à l'intérieur donnerait un résultat faux.
Le test.
import numpy as np
t = np.arange(1, 6)
print(moyenne(t, 5))
# 3.0
Contrôle. La moyenne des entiers de à vaut : le programme affiche bien 3.0.
Le point délicat. L'initialisation s = 0 doit être avant la boucle. À l'intérieur, elle remettrait le compteur à zéro à chaque tour et la fonction rendrait le dernier terme divisé par n.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.