guides

Random Numbers and Simulation

Monte Carlo methods, random sampling, and stochastic modelling.

Published May 30, 2026

Monte Carlo Pi

import random

def estimate_pi(samples: int) -> float:
    inside = 0
    for _ in range(samples):
        x, y = random.random(), random.random()
        if x * x + y * y <= 1.0:
            inside += 1
    return 4.0 * inside / samples

Random Walk

def random_walk(steps: int) -> int:
    position = 0
    for _ in range(steps):
        if random.random() < 0.5:
            position += 1
        else:
            position -= 1
    return position

Seeding for Reproducibility

random.seed(42)
estimate_pi(1000000)