Simulations de Monte-Carlo en Python
Izzy Weber
Curriculum Manager, DataCamp
Définir les variables d'entrée et choisir leurs lois de probabilité
Générer des entrées en échantillonnant ces lois
Effectuer un calcul déterministe sur les entrées simulées
Résumer les résultats
Générer des points aléatoires $(x, y)$ où $x$ et $y$ sont dans l'intervalle de -1 à 1.

$$Area_{circle} = \pi $$
$$Area_{square} = 2 \times 2 = 4 $$
$$\frac{Area_{circle}}{Area_{square}} = \frac{\pi}{4} $$
$$\frac{n_{red}}{n_{all}} = \frac{\pi}{4} $$
$$ \pi = 4 \times \frac{n_{red}}{n_{all}}$$
Définir les variables d'entrée et choisir leurs lois de probabilité
circle_points = 0
square_points = 0
Générer des entrées en échantillonnant ces lois
Échantillonner des valeurs aléatoires $x$ et $y$ distribuées uniformément entre -1 et 1 :
for i in range(n):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
Effectuer un calcul déterministe sur les entrées simulées
Vérifier si chaque point est dans le cercle : déterministe pour des $x$ et $y$ donnés
dist_from_origin = x**2 + y**2
Si oui, ajouter le point à circle_points ; toujours ajouter le point à square_points
if dist_from_origin <= 1:
circle_points += 1
square_points += 1
Résumer les résultats pour répondre aux questions d'intérêt
Après de nombreuses simulations, calculer la valeur de pi !
pi = 4 * circle_points/ square_points
n = 4000000 circle_points = 0 square_points = 0for i in range(n): x = random.uniform(-1, 1) y = random.uniform(-1, 1) dist_from_origin = x**2 + y**2 if dist_from_origin <= 1: circle_points += 1 square_point += 1pi = 4 * circle_points / square_points print(pi)
3.142518
Simulations de Monte-Carlo en Python