Monte-Carlo est un quartier de Monaco connu pour ses casinos. On utilise cette appellation pour des techniques utilisant le hasard. Nous allons utiliser cette méthode pour estimer la valeur du nombre pi.
Le résultat final doit être environ $\frac{\pi}{4}$. Il suffit donc de multiplier le résultat final par 4.
Justification : Chaque point du carré a une probabilité égale d'être choisie. Il paraît naturel que la probabilité de choisir un point du quart de disque soit $\frac{\text{Aire du quart de disque}}{\text{Aire du carré}}$ ce qui fait $\frac{\pi}{4}$.
Pour rendre la méthode plus facile à comprendre, nous choisissons d'afficher les points sur un graphique. Ceci va ralentir l'exécution et n'est pas utile pour le calcul. Vous pourrez l'enlever pour améliorer les performances.
from random import random # importe la fonction random de la bibliothèque random
import matplotlib.pyplot as plt # graphique
from math import sqrt # fonction racine carrée, utile pour la 2e partie
N = 1000 # Nombre total de points
for i in range(N):
x = random() # x au hasard dans [0;1[
y = random() # x au hasard dans [0;1[
plt.plot([x],[y],'ro') # ajout dans le graphique d'un point (o) en rouge (r)
# on aurait écrit 'go' pour un point vert (green)
plt.show()
À faire : modifiez le code pour
La méthode étant aléatoire, on obtient un résultat toujours différent et on ne sait pas à quel point il est juste. On peut utiliser la notion d'intervalle de confiance – programme de maths, terminale, probabilités.
Quand on a obtenu la fréquence $f$ à l'issue du comptage, considérant $N$ le nombre de point total, on dira que l'on a 95 % de chances que la bonne valeur soit dans $\left[f - 1,96\sqrt{\frac{f\cdot(1-f)}{N-1}} ; f + 1,96\sqrt{\frac{f\cdot(1-f)}{N-1}}\right]$.
On en déduit que, puisque notre estimation est $\pi \simeq 4\cdot f$, que la bonne valeur de $\pi$ a 95 % de chances d'être dans $\left[4\,f - 7,84\sqrt{\frac{f\cdot(1-f)}{N-1}} ; 4\,f + 7,84\sqrt{\frac{f\cdot(1-f)}{N-1}}\right]$.
À faire : Au lieu d'afficher une valeur pour $\pi$, donnez l'intervalle de confiance. Que faut-il choisir pour $N$ pour que l'intervalle de confiance soit à $\pm 0,001$ ?
Cette méthode a deux défauts :
random est imparfaite, elle ne fait que simuler le hasard. Le hasard produit par les ordinateurs est suffisant pour quelques tirages mais il devient insuffisant si on veut répéter le tirage d'une grand quantité de nombres aléatoires. C'est une grande difficulté : comment produire 1 milliard de tirage aléatoires ? Pas avec un dé car cela prendrait des années !