Simulations#
Une simulation produit des observations à partir d’un modèle aléatoire. Elle ne démontre pas une probabilité, mais elle permet de tester une conjecture, d’observer des fluctuations et de comparer le résultat expérimental à un calcul théorique.
Dès la première
Une épreuve de Bernoulli#
Une épreuve de Bernoulli possède deux issues : succès ou échec. Si la probabilité du succès
vaut p, le test random.random() < p est vrai avec cette probabilité.
Plusieurs exécutions donnent des fréquences différentes : la valeur de p est fixe, mais
l’échantillon est aléatoire.
Observer les fluctuations#
Le programme suivant construit 200 fréquences. Deux boucles sont nécessaires : la boucle intérieure fabrique un échantillon, la boucle extérieure recommence l’expérience.
Mise en pratique
Écrire une fonction frequences_bernoulli(p, n, N) qui renvoie la liste des fréquences
observées dans N échantillons de taille n. L’exemple précédent fournit maintenant la
structure complète des deux boucles à réorganiser dans une fonction.
Un compteur mal placé#
Le programme suivant veut produire cinq fréquences, mais le compteur n’est pas remis à zéro au bon moment. Exécute-le et repère pourquoi certaines fréquences peuvent dépasser 1.
Comment chercher ?
Le compteur doit mesurer les succès d’un seul échantillon. Cherche à quel moment un nouvel échantillon commence, puis place l’initialisation à l’intérieur de la boucle correspondante.
Mise en pratique
Écrire une fonction dans_intervalle(valeurs, centre, rayon) qui compte les valeurs de la
liste appartenant à l’intervalle fermé [centre-rayon ; centre+rayon]. L’utiliser sur les
fréquences simulées.
Moyenne d’un échantillon#
Une variable aléatoire peut prendre plus de deux valeurs. random.choice(valeurs) effectue
un tirage avec remise dans une liste. On additionne n tirages avant de diviser par n.
Mise en pratique
Écrire une fonction moyenne_echantillon(valeurs, n) qui effectue n tirages avec remise
et renvoie leur moyenne.
La planche de Galton#
Une bille traverse plusieurs rangées de clous. À chaque clou, elle part à gauche ou à droite avec la même probabilité. En codant un déplacement à droite par 1, sa case d’arrivée est simplement le nombre total de déplacements vers la droite.
Le premier panneau suit une bille ; le second regroupe les arrivées d’un grand nombre de billes.
Mise en pratique
Écrire une fonction galton(N, n) qui simule N billes traversant n rangées et renvoie
leurs positions finales. Représenter ensuite la liste par un histogramme.
Prolongements en terminale#
Dès la terminale
Les trois activités suivantes sont indépendantes. Elles reprennent les simulations précédentes, mais demandent davantage de recul mathématique : il n’est pas nécessaire de les traiter dans l’ordre. Chacune commence par une question précise et mobilise les outils de terminale.
Surréservation#
Une compagnie dispose de 100 places. Chaque passager se présente avec une
probabilité 0,95, indépendamment des autres. Écrire une fonction
probabilite_depassement(reservations) qui calcule exactement la probabilité que plus de 100
passagers se présentent, puis chercher le plus grand nombre de réservations conservant une
probabilité inférieure ou égale à 0,05. On pourra utiliser math.comb.
Repères pour construire le programme
Si \(X\) désigne le nombre de passagers présents parmi \(r\) réservations, alors \(X\) suit une loi binomiale de paramètres \(r\) et \(0{,}95\). Pour \(r\leqslant100\), le dépassement est impossible. Sinon,
Le travail se sépare donc en deux étapes : calculer cette somme pour une valeur de \(r\), puis augmenter progressivement \(r\) à partir de 100. Dès que la probabilité dépasse 0,05, le nombre précédent est le dernier acceptable.
Dispersion des moyennes#
Pour une loi de Bernoulli de paramètre p, écrire une fonction
dispersion_moyennes(p, n, N) qui simule N échantillons de taille n et renvoie la
liste des moyennes, leur écart type observé et la proportion située à moins de deux écarts types
théoriques de p. Comparer l’écart type observé à \(\sqrt{p(1-p)/n}\).
Repères pour construire le programme
Une moyenne d’échantillon s’obtient en additionnant n tirages de Bernoulli, puis en
divisant par n. Répéter cette expérience N fois permet de former une liste de N
moyennes. À partir de cette seule liste, il reste à :
calculer la moyenne et l’écart type observés ;
calculer l’écart type théorique \(\sigma=\sqrt{p(1-p)/n}\) ;
compter les valeurs
mqui vérifient \(|m-p|\leqslant2\sigma\), puis diviser ce nombre parN.
Comparer à une inégalité#
Si \(S_n\) suit une loi binomiale de paramètres n et
p, écrire une fonction probabilite_ecart(n, p) calculant exactement
\(P(|S_n-np|>\sqrt n)\), puis comparer à la majoration de Bienaymé-Tchebychev.
Repères pour construire le programme
Ici, \(E(S_n)=np\) et \(V(S_n)=np(1-p)\). L’inégalité de Bienaymé-Tchebychev donne donc
La probabilité exacte se calcule en additionnant les probabilités binomiales seulement pour
les entiers k tels que \(|k-np|>\sqrt n\). La fonction peut renvoyer la probabilité
exacte et la majoration afin de rendre leur comparaison immédiate.
Dans le parcours