Взлом законов Minecraft: математики вычислили число π в мире, где физически не существует круглых предметов

Мобам пришлось убивать друг друга на благо науки.


knvrhrzzbqyckbt5h2cw36jo8o4xdfay.jpg

В Minecraft почти всё собрано из кубов: земля, стены, вода, механизмы и даже сложные вычислительные схемы. Поэтому игра выглядит странным местом для числа π, которое связано с идеальным кругом без углов и граней. Но математики Молли Линч из Холлинсского университета и Майкл Уэслкуч из Роанокского колледжа придумали способ посчитать π прямо внутри кубического мира.

Число π показывает, во сколько раз длина окружности больше её диаметра. У него бесконечная непериодическая дробная часть: 3,14159 и дальше без повторяющегося шаблона. Обычно для вычислений используют формулы, алгоритмы и компьютеры, но Линч и Уэслкуч решили показать школьникам и студентам математику через механику Minecraft. Игра хорошо подходит для подобных экспериментов, потому что даёт игрокам свободу строить не только дома и фермы, но и полноценные логические устройства. А ещё - это просто ближе зумерам, чем скучные уравнения и сухие расчеты на калькуляторах.

Вообще Minecraft уже давно интересует математиков. За годы игроки доказали, что внутри игры можно реализовать любую компьютерную программу , если хватит времени, терпения и блоков. Такой тип системы называют тьюринг-полной: в ней можно построить вычислительную машину общего назначения. Энтузиасты даже запускали рабочую версию Minecraft внутри самого Minecraft, хотя подобные проекты требуют огромного числа игровых инструкций и сложных схем.

Формально вычислить π в Minecraft можно тем же путём: взять готовый алгоритм и перенести каждую компьютерную операцию в игровую конструкцию. Но простой на бумаге процесс быстро превращается в тысячи действий. Компьютер очищает регистры, записывает значения, выполняет логические операции вроде AND, передаёт результат дальше. В игре каждое действие приходится заменять блоками, сигналами и механизмами. Линч и Уэслкуч хотели избежать громоздкой инженерии и показать более наглядный путь.

Для эксперимента выбрали метод Монте-Карло. По смыслу он похож на бросание дротиков в мишень, когда результат складывается из большого числа случайных попаданий. Представим квадратную стену, на которой нарисован круг. Дротики летят плохо, без прицеливания, но всегда попадают на участки в пределах квадрата. Чем больше бросков, тем точнее можно оценить, какая доля попаданий пришлась на круг.

Связь с числом π появляется из законов геометрии. Если сторона квадрата равна 2 метрам, площадь квадрата равна 4 квадратным метрам. Внутри помещается круг с диаметром 2 метра и радиусом 1 метр. Площадь круга равна π квадратных метров. Значит, при равномерном случайном распределении попаданий вероятность оказаться внутри круга равна π/4. Достаточно посчитать долю дротиков, попавших в круг, а затем умножить результат на 4. Получится приближённое значение π.

В Minecraft исследователи заменили круг и квадрат блоками. Сначала они выложили красными блоками приближённый круг радиусом 11 блоков. Идеального круга в кубической игре не получится, но крупная фигура может достаточно близко повторять форму окружности. Затем красную область окружили синими блоками, чтобы получить квадратную площадку вокруг круга.

Дротики в игровой версии заменили существа, о есть мобы. Математики использовали слизней, потому что эти мобы продолжают двигаться, даже когда рядом нет игроков, и случайно меняют направление. Для второй части механизма понадобились зоглины, агрессивные существа, которые убивают слизней. Вместе слизни и зоглины дали источник случайных событий, которые можно считать внутри игры без постоянного наблюдения игрока.

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

После этого расчеты сводятся к простой пропорции. Нужно разделить число убитых слизней внутри круга на общее число убитых слизней на всей площадке. Получалась оценка для π/4. Умножение на 4 давало приближение π. В тестовом запуске погибли 619 слизней, 508 из них оказались внутри круга. То есть формула будет выглядеть так: 4 × 508 / 619 = 3,283.

Значение 3,283 заметно отличается от привычных 3,14159. Авторы не пытаются преувеличить точность результата. Метод Монте-Карло работает через статистику, поэтому точность растёт медленно и требует большого числа случайных событий. В Minecraft на погрешность влияет ещё и сама форма круга: фигура из кубов лишь приближает настоящую окружность, особенно при небольшом радиусе.

Улучшить эксперимент можно 2 путями. Первый: увеличить площадку и круг. Чем больше радиус, тем лучше блочная фигура приближается к настоящей окружности, потому что ступенчатые края меньше влияют на общую площадь. Второй путь: запустить больше слизней и зоглинов, чтобы собрать больше случайных событий. Чем больше наблюдений, тем ближе статистическая доля должна подходить к реальному отношению площадей.

Конечно, такой эксперимент нельзя назвать очень уж эффективным методов вычисления π. Обычный компьютер посчитает больше знаков быстрее и точнее. Но Линч и Уэслкуч добивались другого результата: они хотели показать, как абстрактная математика может работать в знакомой игровой среде. Битва слизней и зоглинов объясняет вероятность, площадь круга, метод Монте-Карло и приближённые вычисления понятнее, чем сухая формула на доске.