Simulări Monte Carlo în Python
Izzy Weber
Curriculum Manager, DataCamp
Definiți variabilele de intrare și alegeți distribuțiile de probabilitate
Generați intrările prin eșantionare din aceste distribuții
Efectuați un calcul determinist al intrărilor simulate
Sintetizați rezultatele
Generați puncte aleatoare $(x, y)$ unde $x$ și $y$ sunt în intervalul de la -1 la 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}}$$
Definiți variabilele de intrare și alegeți distribuțiile de probabilitate
circle_points = 0
square_points = 0
Generați intrările prin eșantionare din aceste distribuții
Eșantionați valori aleatoare pentru coordonatele $x$ și $y$, distribuite uniform între -1 și 1:
for i in range(n):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
Efectuați calculul determinist al intrărilor simulate
Verificați dacă fiecare punct se află în interiorul cercului: determinist pentru $x$ și $y$ date
dist_from_origin = x**2 + y**2
Dacă da, adăugați punctul la circle_points; adăugați întotdeauna punctul la square_points
if dist_from_origin <= 1:
circle_points += 1
square_points += 1
Sintetizați rezultatele pentru a răspunde la întrebările de interes
După mai multe runde de simulări, calculați valoarea lui 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
Simulări Monte Carlo în Python