Construire l'histogramme soi-même
Exercice · informatique (tronc commun des prépas scientifiques), chapitre 4 — Modules, fichiers et données
Énoncé
Écrire une fonction histogramme(t, a, b, k) qui répartit les valeurs de t en classes d'égale largeur couvrant et renvoie la liste des effectifs correspondants, en temps .
Corrigé
On calcule directement la classe d'appartenance d'un élément par une division plutôt qu'en testant successivement les intervalles, ce qui évite un coût en :
def histogramme(t: list, a: float, b: float, k: int) -> list:
"""Précondition : a < b, k >= 1."""
effectifs = [0] * k
largeur = (b - a) / k
for x in t:
if a <= x < b:
i = int((x - a) // largeur)
if i == k: # Sécurité contre les arrondis limites
i = k - 1
effectifs[i] += 1
return effectifsLes 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.