Мы делаем это не потому, что это сложно, а потому, что это нелепо.
— Мэтт Паркер, наверное.
Мэтт Паркер собирается на Луну. В смысле, не буквально. Любимый всеми Stand-Up Mathematician скорее отправится в гиперпространство, чем в космос. Однако, когда к Мэтту обратились с просьбой сделать «что-нибудь нелепое» с помощью свободных вычислительных мощностей на луноходе, исход был очевиден: попытка вычислить \( \pi \) на Луне.
Но… зачем?
Отличный вопрос, прекрасно сформулированный. Похвалён за то, что вы его задали. Далее!
Лунный Монте-Карло
Потому что важно делать нелепые вещи правильно — нет смысла лететь на Луну и делать вычисления, которые можно сделать на Земле, — Мэтт решил аппроксимировать \( \pi \), используя данные с лунохода в качестве источника случайности для расчёта методом Монте-Карло.
Методы Монте-Карло обычно используются для решения задач, когда аналитическое решение слишком сложно или скучно. Хотя были и более ранние методы рандомизированных вычислений — например, игла Бюффона, — первый настоящий эксперимент с Монте-Карло провёл Станислав Улам, выздоравливая от болезни. Улам задался вопросом, насколько вероятно, что пасьянс сложится удачно, и вместо того, чтобы рассчитать это как следует, решил сыграть сотню партий и подсчитать, сколько из них выиграно. Оттуда был всего один шаг до атомной бомбы.
Мэтт показал стандартный подход Монте-Карло к вычислению \( \pi \) в видео, анонсирующем лунный проект \( \pi \) — его часто используют в качестве простого примера при знакомстве с идеей. Если вы поместите круглую мишень в квадратную коробку, которая ей точно подходит, и будете бросать дротики в коробку, предполагая, что вероятность попадания в любую точку в коробке одинакова, у каждого дротика будет вероятность \( \frac{\pi}{4} \) попасть в мишень. Если вы бросите 100 дротиков и 80 из них попадут в мишень, вы сделаете вывод, что \( \frac{\pi}{4} \approx 0,8 \) и что \( \pi \approx 3,2 \). Бросание большего количества дротиков должно дать вам более точную оценку, хотя и довольно медленно. Если вы бросите \( N \) дротиков, стандартная ошибка вашей вероятности будет пропорциональна \( N^{-\frac{1}{2}} \), что означает, что для того, чтобы стать в два раза менее неточным, потребуется в четыре раза больше дротиков.
Герой на горизонте
Мэтт, как известно, считает формулу Герона одним из самых замечательных результатов тригонометрии. Она вызывала у него сильные эмоции. Поэтому, естественно, моя первая мысль была: «Спорю, что подход, основанный на формуле Герона, может сходиться быстрее».
И это возможно! Подход предполагал начать с прямоугольного треугольника с катетами длиной один внутри единичной окружности в первом квадранте. Затем выбиралась случайная координата x между 0 и 1, вычислялась соответствующая точка на дуге и добавлялся треугольник, основанный на двух соседних точках. Вот код. Он сходится до нескольких знаков после запятой в пределах 10 000 итераций.
Но это уже не совсем Монте-Карло, не так ли?
Отличный вопрос, прекрасно сформулированный. Что вы имеете в виду, я должен на него ответить? Кто пишет… Ладно, хорошо. Уф.
Вы правы, это не традиционный метод Монте-Карло. Хотя он использует случайные точки, он не использует их для генерации вероятности. Я всё ещё считаю, что это технически метод Монте-Карло, использующий очень сложную адаптивную весовую функцию, но я вас понял.
Что насчёт настоящих методов Монте-Карло?
Менее изощрённый (но всё же значительно более эффективный, чем метод интегрирования дротиками) подход заключается в использовании того факта, что \( x^2 + y^2 = 1 \) на единичной окружности. Если вы выберете значение \( x \) наугад, вы можете сразу вычислить вероятность того, что случайное значение \( y \) даст точку внутри окружности — это \( \sqrt{1- x^2} \). Вместо того чтобы выбирать и добавлять 1 или 0 к вашему общему количеству для аппроксимации вероятности, почему бы не добавить саму вероятность? Это очень хорошо сходится.
Среднее расстояние точки на окружности от оси равно \( \frac{\pi}{4} \) — факт, который мы, вероятно, будем использовать для реального эксперимента на Луне.
Я не имею официального права раскрывать, что причина моего интереса к вычислению \( \pi \) на Луне заключается в том, что я помогаю разрабатывать эксперимент Мэтта, или что моё кодовое имя — FizzBuzz Aldrin. (Достаточно ли глубоко зарыта эта информация? Отлично.) И мне определённо не разрешено говорить, что мы на самом деле делаем, потому что, я полагаю, Мэтт захочет снять об этом видео.
Однако я могу сказать, что описанный выше метод эквивалентен тому факту, что ожидаемое расстояние между точкой на единичной окружности и осью — любой осью — равно \( \frac{\pi}{4} \). Используя магическое заклинание «СИММЕТРИЯ!» и величественный взмах руки, оказывается, что любая точка на единичной сфере в среднем находится на расстоянии \( \frac{\pi}{4} \) от любой оси сферы. Этот факт можно использовать, например, для моделирования движения ровера по поверхности в своего рода случайном лунном танце.
Ровер будет делать маленькие шаги, а для Мэтта-кинда настанут гигантские времена.
Вы можете сделать пожертвование на Kickstarter Мэтта здесь, если захотите. На момент написания они собрали более четверти миллиона фунтов из целевого миллиона, так что я с нетерпением жду, когда они запустят свою космическую миссию в ближайшее время.
Если вы учитель и хотите принять участие, вы можете зарегистрироваться здесь. Попросите детей оценить \( \pi \) вручную, и они получат (как я понимаю) сертификат, возможно, своё собственное значение лунного \( \pi \), и своё имя в текстовом файле, который отправится на Луну. [Отредактировано 26.06.2025 для форматирования и уточнения того, что личное значение \( \pi \) не гарантируется.]