Adloun

informatique (tronc commun des prépas scientifiques) · Chapitre 4 · Exercice de TD

Construire l'histogramme soi-même

Modules, fichiers et données · niveau 2

É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 effectifs

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre