Сегодня уже сорок девятый день, и Моника, которая знает о сорока восьми неверных мужьях, должна быть удивлена тому, что в предыдущий день не произошло массового убийства. Единственное возможное объяснение (это все еще размышления Эдны о том, что должна была подумать Моника) – муж Моники как раз и есть сорок девятый герой адюльтера.
Таким образом, Эдна должна прийти к заключению, что всегда безупречно логичная Моника должна убить Макса к полуночи сорок девятого дня. Эдна может прийти к подобному же заключению относительно всех остальных женщин деревни. «Да, – думает Эдна, – на сорок девятый день произойдет кровавая баня».
И вот настал сорок девятый день, и все еще ничего не произошло. Единственное возможное объяснение теперь – это то, что Моника и все остальные женщины знали о сорок девятом неверном муже. Это не мог быть Макс. Это мог быть только один мужчина: собственный муж Эдны Эдгар!
Итак, на пятидесятый день Эдна должна прийти к заключению, что ее муж неверен ей. Все остальные женщины сделают о своих мужьях такой же вывод.
Ответ на головоломку – ничего не произойдет в первые сорок девять дней, а на пятидесятый день все пятьдесят жен убьют своих мужей.
Это шедевр среди логических головоломок. Однако нельзя с уверенностью утверждать, что эта задача так же хороша, как инструмент при отборе кандидатов на работу. Первое известное упоминание об этой головоломке в печати – опубликованная в 1958 году книга физика Джорджа Гамоу и математика Марвина Стерна «Математические головоломки» (Puzzle-Math). В их версии речь шла о неверных женах. С тех пор эта головоломка широко использовалась. К 1980-м годам речь уже идет о неверных мужьях, и головоломка становится темой исследования одной из научных лабораторий IBM. Джон Аллен Паулос дал в книге «Жило-было число» (Once upon a Number), опубликованной в 1998 году, версию, так похожую на ту, что используется Microsoft, что, возможно, корпорация использовала именно этот источник.
Я подозреваю, что типичный читатель этой книги прочитал головоломку, подумал о ней немного, не придя ни к какому выводу, и заглянул в ответ: «Вот это да! Какая замечательная головоломка!» Потом, возможно, загадал ее двум-трем друзьям, которые также не сумели ее решить, но согласились, что у нее потрясающее решение, когда узнали о нем. Популярность логической головоломки никак не зависит от того, может кто-то ее решить или нет.
Это становится проблемой только если кто-то пытается использовать данную головоломку для отбора кандидатов на работу. Хотя в причудливой «рекурсивной» логике, используемой для решения этой задачи, можно найти определенные параллели с программированием, эту головоломку очень трудно решить людям, которые понимают поведение реальных людей (а это полезное качество даже для программиста). Когда они не могут ее решить, это обычно происходит из-за того, что они приходят к верному заключению, что если уж ничего не происходит сразу после заявления королевы, то с течение времени драматизм ситуации будет только ослабевать. Обычно это вполне разумный вывод, если речь идет не о решении логических головоломок.
? Злобный демон поймал много гномов (их точное количество неизвестно)…
Какие выводы может сделать в этой ситуации безупречно логичный гном? Наверное, никаких. Скорее всего типичный гном видит других гномов с зелеными или красными камнями. Он все еще ничего не знает о том, какого цвета камень у него на лбу.
Но представьте, что есть гном, который видит только красные или только зеленые камни на лбу у других гномов. Поскольку демон сообщил всем гномам, что среди них есть хотя бы один такой, у которого красный камень на лбу, гном, который видит только зеленые камни, может прийти к выводу, что он и есть единственный гном с красным камнем. И наоборот: гном, который видит только красные камни, может заключить, что он – единственный гном с зеленым камнем на лбу.
Теперь подумайте о гипотетическом гноме, который видит вокруг только гномов с зелеными камнями. Он должен понять, что у него на лбу – красный камень. Все, что ему нужно сделать, – просто шагнуть вперед на следующей перекличке после объявления демона. Он может быть уверен в том, что его безупречно логичные товарищи останутся в строю. Это и будет правильным ответом, который потребовал демон.
Вы можете спросить: а почему другие гномы останутся в строю? Потому ли, что они знают, что у них зеленые камни? Нет. Каждый из этих гномов видит один красный камень (на лбу у того гнома, который собирается выйти из строя) и много зеленых камней (у всех остальных). Это не позволяет никому из них дедуцировать цвет их собственных камней. Они знают, что должен быть хотя бы один камень каждого цвета, и они видят по крайней мере один камень каждого из цветов. Их собственный камень может быть любого цвета.
Эти гномы остаются в строю, потому что им неизвестен цвет их собственного камня. Помните, если кто-то сделает неверный шаг, все гномы погибнут. Логика подсказывает, что единственное безопасное решение – оставаться в строю, если только гном не уверен в том, что у него на лбу красный камень.
Это еще не решение проблемы. Это только один из возможных сценариев, который проще всего анализировать. Это не значит, что именно это реальная ситуация: нам только сообщили, что гномов много, но неизвестно, сколько точно и красные у них на лбу камни или зеленые.
Если описанный выше сценарий не будет реализован во время первого построения (а скорее всего он не будет реализован), все гномы могут прийти к выводу, что есть по крайней мере два камня каждого из двух цветов. Это могло быть очевидно с самого начала (если бы все гномы видели много камней разного цвета), но, если бы был гном, который бы видел только один камень данного цвета, он мог бы во время второго построения прийти к выводу, что он – вторая персона с камнем этого цвета. Он и второй гном с камнем этого цвета (который рассуждает идентичным образом) сделают шаг вперед во время второго построения… Эта цепочка рассуждений и метарассуждений (рассуждений о рассуждениях) будет продолжаться, пока количество построений после объявления демона не совпадет с реальным количеством гномов с камнями более редкого цвета. На этом построении все безупречно логичные гномы с камнем этого цвета сделают шаг вперед, и (если демон держит свои обещания) все гномы обретут свободу.
Любому студенту, который изучает программирование, известно имя Алонзо Черча. В 1930-х годах Черч сформулировал так называемый тезис Черча – Тьюринга – краеугольный камень в исследованиях искусственного интеллекта (суть тезиса в том, что компьютер можно запрограммировать делать все то, что могут делать люди). Черч также один из немногих людей, которых можно обоснованно считать авторами логических головоломок мирового класса. Примерно в то же время, когда он сформулировал свой знаменитый тезис, он придумал головоломку о трех садовниках, у которых были пятна грязи на лбу. Их видит другой человек и замечает, что по крайней мере у одного из них грязь на лбу. Каждому из садовников нужно дедуцировать, грязный у него лоб или чистый.