top of page
Level 2
Вход в центральный компьютерный зал
"Wintermute"
В центральный компьютерный зал Wintermute (The Evil Corporation™) - там, где находится их главный сервер - ведут три двери: одна настоящая и две подставные.
Герои могут наугад выбрать одну дверь, после чего появляется Mad Scientist и открывает другую дверь - подставную. После этого, нашим хакерам предоставляется выбор - либо пройти в первую выбранную ими дверь, либо поменять своё решение и пройти в другую дверь, не выбранную прежде.
Казалось бы - тот факт, что Mad Scientist открывает ложную дверь никак не может повлиять на решение наших героев. Останутся ли они при своём выборе или поменяют его - как это может изменить вероятность попадания в правильную дверь? Но тут-то и скрывается парадокс! Какой - вы узнаете, решив задачу.
Парадокс этот носит название "Парадокс Монти Холла" в честь ведущего американской телеигры "Let's make a deal". В своё время этот парадокс вызвал целый шквал читательских писем, скандалов и обсуждений. В его честь даже выпускают книги!
И теперь вам предстоит разрешить эту проблему раз и навсегда - с помощью компьютера, конечно.
Рисунок объясняет как происходит выбор дверей:
Как решить задачу ?
Чтобы увеличить вероятность проникновения в компьютерный центр, наши герои разделятся на тех, кто поменяет свой выбор двери, и тех, кто останется при своём.
Для того, чтобы узнать разницу между вероятностями успеха в этих двух случаях, вам надо будет применить так называемый "метод Монте-Карло". Этот метод состоит в том, чтобы огромное число раз протестировать задачу со случайно выбранными условиями и изучить распределение вероятностей.
Например, представим себе, что двери распределились таким (случайным) образом:
Дверь 1: ложная
Дверь 2: ложная
Дверь 3: настоящая.
Следующее случайное условие - герои выбирают Дверь 3.
Следующее случайное условие - Mad Scientist выбирает Дверь 1, чтобы предъявить её как ложную.
Теперь у героев есть выбор: если они решают оставить свой первоначальный выбор (Дверь 3) - они выигрывают (в копилку их побед добавляется 1). Если же они решают изменить своё решение и выбрать Дверь 2 (ещё не открытую) - они проигрывают (к их победам ничего не добавляется).
Теперь поделим всех хакеров на тех, кто будет всегда оставаться со своим первоначальным решением и тех, кто будет всегда менять своё решение (к какой именно группе вы принадлежите, вы узнаете, заглянув в свой почтовый ящик).
Для решения задачи вам надо будет случайным образом сгенерировать по крайней мере десять миллионов (или сколько угодно больше) условий задачи, то есть:
1) двери распределены так-то (определить случайным образом);
2) хакер выбрал такую-то дверь (определить случайным образом);
3) Mad Scientist показал такую-то дверь (определить случайным выбором из двух оставшихся дверей, если они обе ложные, иначе показать единственную оставшуюся ложную дверь).
Затем, основываясь на том, к какой группе вы принадлежите, вам надо будет проверить, угадали вы или нет.
Поделив в конце число побед на общее число проверок (десять миллионов или другое, выбранное вами число), вы узнаете, какова вероятность выиграть в игру Монти Холла для вашей группы.
Что вам может понадобиться для решения ?
Для решения этой задачи вам пожет понадобиться понятие списка (list), а также знакомство с логическими (или булевыми) значениями True и False.
Например, список из трёх логических значений может выглядеть так:
doors = [False, False, True]
Кроме того, вам надо познакомиться с тем, как импортировать модули в свою программу, потому что для этой задачи будет совершенно необходим модуль random.
Например, следующая строка помогает случайным образом найти целое число в интервале между 0 и 10 (включая оба этих числа):
choice = random.randint(0, 10)
Выбрать случайным образом одну из трёх дверей, можно, например, так:
random_door = doors[random.randint(0, 2)]
а ещё лучше так:
random_door = choice(doors)
Ну и, конечно же, вам просто необходимо познакомиться с функциями. Это одно из основных понятий в любом языке программирования, поэтому, пожалуйста, изучите функции очень хорошо!
Как раскрыть пароль ?
Каждый хакер в своём почтовом ящике получит сообщение, которое определит, к какой группе он принадлежит.
После этого, напишите программу, реализующую метод Монте-Карло для вашей группы и посчитайте вероятность вашего выигрыша (в процентах!).
Отбросьте все цифры после запятой (не округляйте!) и полученное целое число процентов и станет вашей частью пароля (так, если у вас получилось 15.823254%, ваша часть пароля - 15).
Пароль будет состоять из частей, раскрытых каждым из хакеров в следующем порядке:
Линус + Сатоши Накамото + Тринити + J.F.Sebastian + Дораемон
до конца уровня
Теперь, когда вы знаете пароль, можете переходить на
bottom of page