I̶n̶finite Monkeys
Цель игры – написать весь первый акт шекспировского Короля Лира, по одной случайной букве за раз. Обезьяны будут набирать буквы случайным образом, пока одна из них не наберет правильную, и за каждую заполненную букву вы получите 1 доллар. Используйте кнопки на верхнем этаже, чтобы нанять больше обезьян и мотивировать существующих работать быстрее, покупая плакаты и банановые деревья. Включите музыку и звуковые эффекты, нажав на радио.
Настоятельно рекомендую прочитать приведенную ниже рецензию, пока вы ждете, пока ваши обезьяны будут прогрессировать.
Эта игра основана на теореме о бесконечных обезьянах, которая утверждает, что обезьяна на пишущей машинке, если дать ей бесконечное время, сможет написать любое сложное литературное произведение, например Короля Лира Шекспира. . В I̶n̶finite Monkeys вашим обезьянам придется напечатать всю первую сцену Короля Лира — длина текста является частью абсурдной предпосылки; Я на самом деле не ожидаю, что вы закончите все это.
Несмотря на то, что ниже я привожу базовые статистические данные, я избегаю таких технических вещей, как формальное доказательство теоремы. Потому что, если вы были на YouTube, посвященном поп-научным дисциплинам, вы знаете, что, хотя для доказательств лучше обращаться с обезьянами в этой теореме как с равномерно случайными генераторами строк, это гораздо веселее. просто считать большие числа и говорить об обезьянах.
При планированииВ этой игре я хотел сделать описание и предпосылку несколько глуповатыми. Первоначальная идея состояла в том, чтобы смоделировать «настоящую» версию эксперимента с обезьянами на пишущих машинках с несколькими раундами угадывания, и я написал для этого некоторый тестовый код (зная, что это плохо кончится). Обезьяна будет угадывать случайные слова длины N, пока не найдет правильное, затем начнется раунд для N+1. Итак, в раунде 1, если слово было "A", он угадывает "K"... "B"... "G"... "G"... "A"... хорошо! Теперь угадайте «UE», затем «JHW» и так далее.
Проблема? Время выполнения. Когда вы доберетесь до N=5 и выше, симуляция станет очень медленной. Если мы приравняем то, что делает обезьяна в этом примере, к чему-то более реалистичному, например, к подбору пароля, становится понятно, почему. Если бы человек угадывал пароль из 5 символов, было бы глупо угадывать слово «БОБЫ» один раз, чтобы через некоторое время снова угадать его. Они уже знают, что пароль не "BEANS"!
Обезьяны не настолько умны, потому что идея эксперимента заключается в том, что их действия (в абстрактном смысле) случайны, или, скорее, любое предыдущее действие не имеет никакого значимого отношения к следующему. Это означает, что «обезьяний подход» к взлому пароля в среднем намного хуже, чем попытка грубой силы.
Таким образом, даже для крошечных догадок из пяти символов программа иногда работала намного дольше, чем должна была, потому что каждая попытка является чисто случайным угадыванием. Я знал, что сложность взорвется очень быстро, но степень, в которой онаxploded стал неожиданностью — в первую очередь из-за случайного элемента. Точно так же в I̶n̶finite Monkeys вы можете заметить, что иногда бывают длительные отрезки времени, когда не набирается правильная буква, даже при высокой скорости набора текста. Полностью случайные предположения, как правило, являются неверными предположениями.
Король Лир, Акт I, Сцена I
Теперь давайте возьмем Короля Лира в качестве более конкретного примера, потому что числа большие, а это просто веселее. Первая сцена в рукописи Короля Лира, использованная в этой игре, состоит из 14 326 символов (все пьеса — 150 746). Все разделы пробелов заменяются только одним основным символом пробела, и все буквы рассматриваются как прописные. Знаки препинания {. , ' : ; ? -} также включены.
Итак, предположим, что у нас есть одна обезьяна, которая будет генерировать чисто случайные строки длиной 14 326 за некоторый период времени, после чего мы сравним ее с Королем Лиром и поставим обезьяне большой палец. вверх или (гораздо более вероятно) большой палец вниз.
Учитывая предыдущее обсуждение, вы можете предположить, что для этого потребуется несколько попыток. Вот почему мысленный эксперимент предлагает «бесконечность» нескольких ресурсов. Это бывает по-разному, но обычно это бесконечное время, обезьяны, пишущие машинки и, возможно, работники зоопарка (поэтому обезьяны остаются на своих местах).
Итак, сколько возможных строк длиной 14 326 может сгенерировать любая данная обезьяна за одну попытку? Ну, а если мы ограничим алфавит тем, чтопоявляется в правильном полном тексте, каждый символ в случайной строке может быть одним из 34 символов (26 букв, 1 символ пробела и 7 знаков препинания). Теперь для каждого символа в строке после первого мы умножаем 34 на себя, чтобы получить общее пространство ключей строки из 14 326 символов.
Количество возможных строк, которые может сгенерировать обезьяна, равно огромному 34^(14326). Это десятичное число длиной 21940 десятичных цифр. Для большего контекста: во Вселенной приблизительно 6 x 10^(79) атомов, что все же меньше числа 34^(53). Теперь снова умножьте это число на 34, а затем повторите это еще 14 272 раза.
Из всех этих возможностей только одна является истинной первой сценой Короля Лира. Так что, вероятно, будет также справедливо предположить, что обезьяна должна быть бессмертной, чтобы вся эта операция стартовала; это займет у них некоторое время.
Теперь вернемся к игре, которая, вероятно, все еще работает, пока мы говорим, потому что половина шутки заключается в том, что она раздражающе длинная. Я думаю, я привел аргумент, почему это не просто одинокая шимпанзе в кресле, выкрикивающая случайные буквы, пока одна не окажется правильной... потому что вы будете здесь до тепловой смерти вселенной, ожидая божественного примата. сгенерированного Шекспира, хотя бы для первого акта.
Вместо этого есть очевидное решение, которое делает ситуацию немного более терпимой: сделать обезьян менее дарвинистскими и болееllectivist, под которым я подразумеваю, что они работают вместе, а ошибки игнорируются. Я имею в виду, что мы уже проверяли правильность вывода в сравнении с копией Короля Лира из последней гипотезы, так что писать по буквам за раз действительно жульничает?
Ответ — «да», но опять же: ожидание конца вселенной определенно не может быть более привлекательным. Гораздо интереснее смотреть, как обезьяны бьют предметы.
PS: если вы хотите поддержать мои будущие проекты, ознакомьтесь с моей текущей игрой в разработке: VSCS-II.
Как скачать I̶n̶finite Monkeys через торрент
Всего несколько простых шагов:
- Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
- Выбираем и скачиваем подходящий торрент-файл репака I̶n̶finite Monkeys
- Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
- После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!