Adloun

Une fréquence, et la probabilité exacte

Exercice supplémentaire · niveau 1 (application) · mathématiques approfondies (ECG 1re année), chapitre 11 — Informatique et algorithmique · Simulation

Énoncé

Soit . Estimer par simulation sur tirages, puis la calculer exactement par un programme n'employant que des boucles. Comparer les deux résultats.

Corrigé

Ce qu'on montre. Que la simulation et le calcul exact se contrôlent l'un l'autre, et que la loi binomiale se calcule par récurrence, sans coefficient binomial explicite.

La récurrence. Pour et , en simplifiant les factorielles et les puissances. On part donc de et l'on avance de proche en proche.

Le programme.

import numpy as np
import numpy.random as rd

# --- par simulation
X = rd.binomial(10, 0.3, 10 ** 6)
print(np.mean(X >= 3))          # ~0.6172

# --- exactement
def proba_au_moins(n, p, m):
    """P(X >= m) pour X binomiale(n, p), par recurrence sur la loi."""
    q = (1 - p) ** n            # P(X = 0)
    cumul = q
    for k in range(m - 1):      # ajoute P(X=1), ..., P(X=m-1)
        q = q * (n - k) / (k + 1) * p / (1 - p)
        cumul = cumul + q
    return 1 - cumul

print(proba_au_moins(10, 0.3, 3))   # 0.617219...

Le calcul à la main. Leur somme vaut , donc

La comparaison. La simulation sur tirages affiche une valeur voisine de . L'écart-type de cette fréquence vaut : les deux résultats doivent coïncider sur trois décimales, ce qu'on observe.

Point délicat. La boucle parcourt range(m - 1), soit , ce qui ajoute à la valeur initiale : on cumule bien . Écrire range(m) ajouterait un terme de trop et renverrait — erreur silencieuse, que seule la comparaison avec la simulation révélerait.

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.