La loi des grands nombres exprime le fait que la fréquence de réalisation d'un événement sur l'échantillon s'approche de la probabilité de cet événement.
On lance un dé à 6 faces non truqué :
- Si l'on tombe sur un 1, on gagne 1 €.
- Si l'on tombe sur 2, 3 ou 4, on gagne 3 €.
- Sinon, on gagne 4 €.
On note X la variable aléatoire donnant le gain obtenu lors d'un lancer.
Quelle fonction Python permet de générer la variable aléatoire X ?
Pour tirer un chiffre aléatoire, on peut utiliser la fonction \verb/randint/ du module \verb/random/ qu'on importe comme cela :
\verb* from random import randint *
Il suffit ensuite de vérifier avec une instruction \verb/if - elif - else/ à quel gain le nombre tiré correspond.
Ainsi :
\verb/ from random import randint /
\verb/ def experience(): /
\verb/ de = randint(1{,}6) /
\verb/ # on tire au hasard un nombre entier parmi 1{,}2{,}3{,}4{,}5{,}6 /
\verb/ if de < 2: /
\verb/ X = 1 /
\verb/ elif de < 5: /
\verb/ X = 3 /
\verb/ else: /
\verb/ X = 4 /
\verb/ return X /
Quelle est l'espérance théorique de gain de ce jeu de dé ?
L'espérance du jeu est la somme des probabilités multipliées par les gains associés à chaque issue possible.
P(1 €) = P(1) = \dfrac{1}{6}
P(3 €) = P(2) + P(3) + P(4) = \dfrac{1}{6} + \dfrac{1}{6} + \dfrac{1}{6} = \dfrac{3}{6}
P(4 €) = P(5) + P(6) = \dfrac{1}{6} + \dfrac{1}{6} = \dfrac{2}{6}
L'espérance est donc E(X) = 1 \times \dfrac{1}{6} + 3 \times \dfrac{3}{6} + 4 \times \dfrac{2}{6} = \dfrac{1+9+8}{6} = \dfrac{18}{6}, soit 3.
Quel programme permet de tracer en bleu des points dont les ordonnées sont les valeurs d'une liste \verb/ L/ ?
Pour tracer des points, on peut utiliser la fonction \verb/plot/ du module graphique \verb/matplotlib/.
Elle prend 3 arguments :
- les abscisses, que l'on peut générer avec la fonction \verb/range/ ;
- les ordonnées ;
- l'aspect.
Pour que l'aspect soit des points bleus, on utilise la syntaxe \verb/'b.'/, b pour « bleu » et le . pour indiquer les points.
Ainsi :
\verb/ import matplotlib.pyplot as plt /
\verb/ plt.plot(list(range(1,len(L)+1)),L,'b.') /
Quelle fonction permet de tracer l'évolution de la moyenne en fonction du nombre de fois où l'on observe la variable aléatoire X à l'aide la fonction \verb/ experience()/ ?
Tant que l'on n'a pas généré suffisamment d'expériences, on itère à l'aide d'une boucle \verb/while/.
On ajoute dans une liste le résultat de l'expérience aléatoire à l'aide de la fonction \verb/append/. Pour calculer la moyenne des résultats jusqu'à présent, on divise tous les gains précédents par le nombre de tirages jusqu'à présent.
Ainsi :
\verb/ import matplotlib.pyplot as plt /
\verb/ def evolutionMoyenne(experience,nExperiences): /
\verb/ s = experience() /
\verb/ n = 1 /
\verb/ L = [s] # moyenne sur 1 expérience /
\verb/ while n < nExperiences: /
\verb/ n = n+1 /
\verb/ s = s + experience() /
\verb/ L.append(s/n) # on ajoute la moyenne sur n expériences /
\verb/ plt.plot(list(range(1,nExperiences+1)),L,'b.') /
\verb/ plt.plot([1,nExperiences],[3, 3],'r-') /
\verb/ #3 est l'espérance de gain /
\verb/ plt.grid() /
\verb/ plt.show() /