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é.

Exemple
Un échantillon de Bernoulli
Prêt
Sortie

  

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.

Exemple
Une liste de fréquences
Prêt
Sortie

  

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.

À toi
Plusieurs échantillons
À faire
Sortie

  

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.

À corriger
Replacer l’initialisation
Erreur attendue
Sortie

  
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.

Exemple
Histogramme des fréquences
Prêt
Sortie

  

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.

À toi
Compter dans un intervalle
À faire
Sortie

  

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.

Exemple
Une moyenne simulée
Prêt
Sortie

  

Mise en pratique

Écrire une fonction moyenne_echantillon(valeurs, n) qui effectue n tirages avec remise et renvoie leur moyenne.

À toi
Moyenne simulée
À faire
Sortie

  

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.

Exemple
Simuler une bille
Prêt
Sortie

  

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.

À toi
Planche de Galton
À faire
Sortie

  

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,

\[P(X>100)=\sum_{k=101}^{r}\binom{r}{k}0{,}95^k\,0{,}05^{r-k}.\]

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.

À toi
Surréservation
À faire
Sortie

  

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 à :

  1. calculer la moyenne et l’écart type observés ;

  2. calculer l’écart type théorique \(\sigma=\sqrt{p(1-p)/n}\) ;

  3. compter les valeurs m qui vérifient \(|m-p|\leqslant2\sigma\), puis diviser ce nombre par N.

À toi
Dispersion des moyennes
À faire
Sortie

  

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

\[P\left(|S_n-np|>\sqrt n\right) \leqslant \frac{np(1-p)}{n}=p(1-p).\]

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.

À toi
Probabilité d’un écart
À faire
Sortie

  

Dans le parcours