Monte Carlo-simuleringar i Python
Izzy Weber
Curriculum Manager, DataCamp
Definiera indatavariablerna och välj sannolikhetsfördelningar för dem
Generera indata genom att sampla från dessa fördelningar
Utför en deterministisk beräkning av de simulerade indatana
Sammanfatta resultaten
Generera slumpmässiga punkter $(x, y)$ där $x$ och $y$ ligger i intervallet från -1 till 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}}$$
Definiera indatavariablerna och välj sannolikhetsfördelningar för dem
circle_points = 0
square_points = 0
Generera indata genom att sampla från dessa fördelningar
Sampla slumpmässiga $x$- och $y$-koordinatvärden likformigt fördelade mellan -1 och 1:
for i in range(n):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
Utför deterministisk beräkning av de simulerade indatana
Kontrollera om varje punkt ligger inuti cirkeln: deterministiskt för givna $x$ och $y$
dist_from_origin = x**2 + y**2
Om ja, lägg till punkten i circle_points; lägg alltid till punkten i square_points
if dist_from_origin <= 1:
circle_points += 1
square_points += 1
Sammanfatta resultaten för att besvara relevanta frågor
Beräkna värdet på pi efter många simuleringsomgångar!
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
Monte Carlo-simuleringar i Python