Число пи методом Монте-Карло
Случайные точки и немного геометрии — и компьютер «угадывает» число $\pi$.
Метод Монте-Карло — способ оценки величин с помощью случайных испытаний и подсчёта доли «удачных» исходов.
Ряд Лейбница вычисляет $\pi$ детерминированно. А можно ли получить $\pi$ из чистой случайности? Да — методом Монте-Карло, названным в честь знаменитого казино. Идея в том, что вероятность связана с площадью.
Геометрия испытания
Возьмём единичный квадрат $[0,1] \times [0,1]$ и впишем в него четверть круга радиуса 1. Площадь квадрата равна 1, площадь четверти круга — $\pi/4$. Бросаем случайную точку в квадрат; вероятность попасть в четверть круга равна отношению площадей:
$$\mathbb{P}(\text{точка в круге}) = \frac{\pi/4}{1} = \frac{\pi}{4}.$$
Точка $(x, y)$ попадает в четверть круга, если $x^2 + y^2 \le 1$. Бросив много точек и посчитав долю попавших, умножим её на 4 — получим оценку $\pi$.
Бросаем точки
import random
random.seed(42)
trials = 100000
inside = 0
for _ in range(trials):
x = random.random()
y = random.random()
if x * x + y * y <= 1.0:
inside += 1
pi_estimate = 4 * inside / trials
print("Точек внутри круга:", inside, "из", trials)
print("Оценка pi:", pi_estimate)
print("Истинное pi: 3.141593")
Вывод:
Точек внутри круга: 78432 из 100000 Оценка pi: 3.13728 Истинное pi: 3.141593
Как работает под капотом
Мы зафиксировали зерно генератора (random.seed(42)), чтобы результат был воспроизводимым — без него каждый запуск давал бы чуть иное число около 3,14. Точность метода Монте-Карло растёт как $1/\sqrt{N}$: чтобы добавить один десятичный знак, нужно в сто раз больше точек. Это медленнее многих рядов, но метод бесценен там, где аналитической формулы нет: им считают сложные интегралы, моделируют физику частиц и оценивают финансовые риски. Геометрический смысл прост — мы «измеряем» площадь круга, забрасывая его дождём случайных точек.
Частые ошибки
Не сравнивайте расстояние с радиусом через корень: условие $x^2 + y^2 \le 1$ эквивалентно $\sqrt{x^2+y^2} \le 1$, но без лишней операции. Не забудьте множитель 4 (мы считаем четверть круга). И помните про статистическую природу: одна реализация даёт приближение, а не точное значение, и разброс уменьшается лишь как корень из числа испытаний.
Итог
- Доля точек в четверти круга равна $\pi/4$.
- Условие попадания: $x^2 + y^2 \le 1$.
- Оценка $\pi$ = 4 · (доля попавших).
- Точность растёт как $1/\sqrt N$ — медленно, но метод универсален.