саморазвитие
October 4, 2021

Аналитический метод для подсчета числа 𝜋

Статья для тех, кого привлекают интересные подходы к решению различных задач. Рассмотрим, как средствами Python найти приблизительное значение числа 𝜋.

На практическую реализацию меня натолкнула заметка о том, что 𝜋 можно получить из соотношения площадей квадрата 2х2 и вписанной в него окружности с единичным радиусом:

Так, отношение площади окружности к площади квадрата равно вероятности попадания случайной точки с произвольными координатами внутри квадрата также и в окружность:

Чтобы смоделировать вероятность возьмем набор точек с равномерным распределением по x и y и посчитаем для каждой длину вектора, соединяющего точку с началом координат. Если она меньше 1, то точка попала в окружность, в противном случае - не попала. Вероятность будет равна доле точек, попавших в окружность при достаточно большой выборке точек:

import numpy as np
np.random.seed(1)

x = np.random.uniform(-1, 1, size=100000)
y = np.random.uniform(-1, 1, size=100000)

z = np.power(np.square(x)+np.square(y), 0.5)
pi = (z<1).mean()*4
pi

А если смоделировать не 100 тыс. точек, а 10 млн, то точность числа 𝜋 возрастет, так как значение доли будет ближе к истинной вероятности: