Почему вы (почти) не можете вычислить число пи до миллиарда знаков в Python дома
Почему вы (почти) не можете вычислить число π до миллиарда знаков в Python дома
Это сложнее, чем вы думаете

Введение
9 июня 2022 года Google установил новый мировой рекорд в вычислении наибольшего количества знаков числа Пи — 100 ТРИЛЛИОНОВ! Это великолепное достижение стало возможным благодаря программе y-cruncher, запущенной на облачном сервисе Google. Вычисления длились целых 157 дней, 23 часа, 31 минуту и 7,651 секунды.
Если один миллиард на сто тысяч раз меньше ста триллионов, уменьшится ли время выполнения соответствующим образом? Другими словами, займет ли это всего 136 секунд?
Однако 136 секунд — это слишком амбициозно. Домашние компьютеры значительно менее мощные, чем самые передовые технологии Google Cloud. Что насчет более разумного времени выполнения, например, 24 часов?
Оказывается, вычислить даже миллиард знаков числа Пи за 24 часа — это огромная мечта. В этой статье мы объясним почему, представив доказательства на языке Python.
- 7 Прибыльных Способов Заработка для Данных Ученых
- Моделирование игр с помощью цепей Маркова
- Ваш собственный персональный ЛаМа
Прежде всего, что не так с math.pi
?
import mathprint(math.pi)
3.141592653589793
math.pi
имеет точность до 15 знаков. Хотя это и не много, это достаточно для высокоточных вычислений в науке.
Например, NASA Jet Propulsion Lab (JPL) использует 15 знаков числа Пи для навигации между планетами. Чтобы дать вам представление, этого уровня точности достаточно, чтобы вычислить длину окружности с радиусом в 15 миллиардов миль. Результативный периметр в 94 миллиарда миль будет отличаться всего на ширину вашего мизинца. Подумайте об этом!
Зачем же заморачиваться на миллиарде и, тем более, на ста триллионах знаков числа Пи?
Ну, чтобы дать вам ответ “понердственного” гика: “Потому что это было бы так просто сумасшедше круто!”.
Что если мы увеличим десятичную точность?
Прежде чем вытащить тяжелую артиллерию (алгоритмы!), что если мы увеличим десятичную точность в Python при приближении числа π? Это было бы намного проще.
Для приближения мы будем использовать формулу Рамануджана для π. Математики со всего мира используют ее для приближенных вычислений π до непреодолимых степеней точности.
from decimal import Decimal...