Страница:
действительнояблоки, а в другой — смесь. Снова, поскольку известно, что все ярлыки ложные, яблоки не могут находиться в корзине с названием «Яблоки» — они должны быть в корзине с надписью «Апельсины». Это значит, что смесь яблок и апельсинов находится в корзине с названием «Яблоки». Аналогичные рассуждения позволяют решить задачу, если вы достали из корзины с надписью «Яблоки и апельсины» яблоко.
В деревне, где живет пятьдесят семейных пар, каждый из мужей изменял своей жене…
Начните с ситуации, которая существует в деревне до того, как королева сделала свое заявление. Вы знаете, что каждыймужчина изменял своей жене.
Женщины, которые знают о вопиющих нарушениях супружеской верности, должны по закону убить своих неверных мужей. Почему же они еще этого не сделали?
Все дело в том, что только жена неверного мужа обязана его убить. Каждая из женщин деревни знает об изменах мужей другихсорока девяти женщин, но ничего не знает об изменах своего собственного мужа. Этикет исключает сообщение этого неприятного факта каждой из женщин.
Это, конечно, странная ситуация, но она вполне обычна для логических головоломок. Но однажды в деревню приезжает королева и говорит, что по крайней мере один муж неверен своей жене. Каким образом это изменит ситуацию?
Никак. По меньшей мере один???—должно быть, подумают жены, и каждая при этом будет гадать, кого из известных лично ей сорока девяти неверных мужей имела в виду королева. Заявление королевы не сообщило ничего нового кому бы то ни былов деревне.
Вот на чем попадаются многие кандидаты. Если заявление королевы неинформативно — о чем тут еще говорить? Ни одна женщина из-за этого не станет убивать своего мужа. Ничего не произойдет.
И предположение о том, что «ничего не произойдет», верно до конца того дня, когда королева сделала свое объявление.
Ничего не произойдет и на следующий день, и еще через день.
Давайте сразу перепрыгнем в сорок девятый день. Возьмем, к примеру, одну женщину по имени Эдна. Эдне известно об изменах сорока девяти мужей. Среди них есть и Макс — муж ее подруги Моники. Учитывая то, как быстро распространяются слухи, Эдна знает, что Монике должно быть известно (по меньшей мере) о сорока восьми неверных мужьях. Это те сорок восемь, о которых знает Эдна, минус Макс. Никто не осмелится рассказать Монике о проделках Макса.
Теперь вот в чем трюк. На сорок девятый день Эдна должна прийти к выводу, что Моника должна догадаться, что Макс ей неверен. Моника должна понять это (как рассуждает Эдна), потому что никто не был убит в предыдущиедни.
Если бы в деревне был только одинневерный муж, его жена должна была убить его в тот день, когда королева сделала свое объявление (назовем этот день первым). Так как в этом случае все женщины знали бы об этом единственном неверном муже за исключениемего жены. Она была бы единственной женщиной, которой бы не было известно о неверном муже. Поэтому объявление королевы было бы для нее как удар грома. Поскольку она не знала ни о каких неверных мужьях, этот «по крайней мере» один неверный муж должен быть ее собственным мужем. Она должна была бы убить его в тот самый день, как предписано законом. Конечно, в том случае, если бы в деревне был всего один неверный муж.
Вместо этого настает утро второго дня — и все мужчины живы. Это информирует всех жителей в деревне о том, что неверных мужей болееодного. И это, и безупречность королевы подразумевает, что неверных мужей должно быть по крайней мере два.
И если неверных мужей было бы только два, их жены убили бы их на второй день, а если бы их было три — жены бы убили их на третий день, и т. д. И если бы их было сорок восемь — их сорок восемь жен убили бы их на сорок восьмой день.
Сегодня уже сорок девятый день, и Моника, которая знает о сорока восьми неверных мужьях, должна быть удивлена тому, что в предыдущий день не произошло массового убийства. Единственное возможное объяснение (это все еще размышления Эдны о том, что должна была подумать Моника) — муж Моники как раз и есть сорок девятый герой адюльтера.
Таким образом, Эдна должна прийти к заключению, что всегда безупречно логичная Моника должна убить Макса к полуночи сорок девятого дня. Эдна может прийти к подобному же заключению относительно всех остальных женщин деревни. «Да,— думает Эдна, — на сорок девятый день произойдет кровавая баня».
И вот настал сорок девятый день, и все еще ничего не произошло. Единственное возможное объяснение теперь— это то, что Моника (и все остальные женщины) знали о сорок девятом неверном муже. Это не мог быть Макс. Это мог быть только один мужчина: собственный муж Эдны Эдгар!
Итак, на пятидесятый день Эдна должна прийти к заключению, что еемуж неверен ей. Все остальные женщины сделают о своих мужьях такой же вывод.
Ответ на головоломку — ничего не произойдет в первые сорок девять дней, а на пятидесятый день все пятьдесят жен убьют своих мужей.
Это шедевр среди логических головоломок. Однако нельзя с уверенностью утверждать, что эта задача также хороша как инструмент при отборе кандидатов на работу. Первое известное упоминание об этой головоломке в печати — опубликованная в 1958 году книга физика Джорджа Гамоу и математика Марвина Стерна Puzzle—Math («Математические головоломки»). [145]В их версии речь шла о неверных женах. С тех пор эта головоломка широко использовалась. К 1980-м годам речь уже идет о неверных мужьях, и головоломка становится темой исследования одной из научных лабораторий IBM. [146]Джон Аллен Паулос дал в книге Once upon a Number («Жило-было число»),опубликованной в 1998 году, версию, так похожую на ту, что используется Microsoft,что, возможно, корпорация использовала именно этот источник. [147]
Я подозреваю, что типичный читатель этой книги прочитал головоломку, подумал о ней немного, не придя ни к какому выводу, и заглянул в ответ: «Вот это да! Какая замечательная головоломка!» Потом, возможно, загадал ее двум-трем друзьям, которые также не сумели ее решить, но согласились, что у нее потрясающее решение, когда узнали о нем. Популярность логической головоломки никак не зависит от того, может кто-то ее решить или нет.
Это становится проблемой только если кто-то пытается использовать данную головоломку для отбора кандидатов на работу. Хотя в причудливой «рекурсивной» логике, используемой для решения этой задачи, можно найти определенные параллели с программированием, эту головоломку очень трудно решить людям, которые понимают поведение реальных людей (а это полезное качество даже для программиста). Когда они не могут ее решить, это обычно происходит из-за того, что они приходят к верному заключению, что если уж ничего не происходит сразу после заявления королевы, то с течение времени драматизм ситуации будет только ослабевать. Обычно это вполне разумный вывод, если речь идет не о решении логических головоломок.
Злобный демон поймал много гномов (их точное количество неизвестно)…
Какие выводы может сделать в этой ситуации безупречно логичный гном? Наверное, никаких. Скорее всего типичный гном видит других гномов с зелеными или красными камнями. Он все еще ничего не знает о том, какого цвета камень у него на лбу.
Но представьте, что есть гном, который видит толькокрасные или толькозеленые камни на лбу у других гномов. Поскольку демон сообщил всем гномам, что среди них есть хотя бы один такой, у которого красный камень на лбу, гном, который видит толькозеленые камни, может прийти к выводу, что он и есть единственный гном с красным камнем. И наоборот: гном, который видит только красные камни, может заключить, что он — единственный гном с зеленым камнем на лбу.
Теперь подумайте о гипотетическом гноме, который видит вокруг только гномов с зелеными камнями. Он должен понять, что у него на лбу — красный камень. Все, что ему нужно сделать — просто шагнуть вперед на следующей перекличке после объявления демона. Он может быть уверен в том, что его безупречно логичные товарищи останутся в строю. Это и будет правильным ответом, который потребовал демон.
Вы можете спросить: а почему другие гномы останутся в строю? Потому ли, что они знают, что у них зеленые камни? Нет. Каждый из этих гномов видит один красный камень (на лбу у того гнома, который собирается выйти из строя) и много зеленых камней (у всех остальных). Это не позволяет никому из них дедуцировать цвет их собственных камней. Они знают, что должен быть хотя бы один камень каждого цвета, и они видят по крайней мере один камень каждого из цветов. Их собственный камень может быть любого цвета.
Эти гномы остаются в строю, потому что им неизвестен цвет их собственного камня. Помните, если кто-то сделает неверный шаг, все гномы погибнут. Логика подсказывает, что единственное безопасное решение — оставаться в строю, если только гном не уверен в том, что у него на лбу красный камень.
Это еще не решение проблемы. Это только один из возможных сценариев, который проще всего анализировать. Это не значит, что именно это реальная ситуация: нам только сообщили, что гномов много, но неизвестно, сколько точно и красные у них на лбу камни или зеленые.
Если описанный выше сценарий не будетреализован во время первого построения (а скорее всего он не будетреализован), все гномы могут прийти к выводу, что есть по крайней мере двакамня каждого из двух цветов. Это могло быть очевидно с самого начала. (если бы все гномы видели много камней разного цвета), но если бы был гном, который бы видел только один камень данного цвета, он мог бы во время второго построения прийти к выводу, что он — вторая персона с камнем этого цвета. Он и второй гном с камнем этого цвета (который рассуждает идентичным образом) сделают шаг вперед во время второго построения… Эта цепочка рассуждений и метарассуждений (рассуждений о рассуждениях) будет продолжаться, пока количество построений после объявления демона не совпадет с реальным количеством гномов с камнями более редкого цвета. На этом построении все безупречно логичные гномы с камнем этого цвета сделают шаг вперед, и (если демон держит свои обещания) все гномы обретут свободу.
Любому студенту, который изучает программирование, известно имя Алонзо Черча. В 1930-х годах Черч сформулировал так называемый тезис Черча — Тьюринга — краеугольный камень в исследованиях искусственного интеллекта (суть тезиса в том, что компьютер можно запрограммировать делать все то, что могут делать люди). Черч также один из немногих людей, которых можно обоснованно считать авторами логических головоломок мирового класса. Примерно в то же время, когда он сформулировал свой знаменитый тезис, он придумал головоломку о трех садовниках, у которых были пятна грязи на лбу. Их видит другой человек и замечает, что по крайней мере у одного из них грязь на лбу. Каждому из садовников нужно дедуцировать, грязный у него лоб или чистый.
Эта головоломка послужила вдохновением для целого жанра задач о людях, которые должны дедуцировать, какого цвета у них на голове шляпа или печать на лбу. В последние годы Раймонд Смаллиан предложил много вариаций хороших задач на эту тему. Тем или иным способом практически все эти головоломки решаются на основе предположений о поведении безупречно логичных существ, которые делают выводы на основе того, что их коллеги, также безупречно логичные существа, не делают определенного вывода в течение какого-то определенного срока.
Головоломка о «деревне неверных мужей», наверное, самый вычурный вариант. Задача о демоне и гномах отличается от нее тем, что вам, когда вы рассуждаете, нужно поставить себя на место одного из участников этой гипотетической ситуации и продумывать свою стратегию поведения. Я нигде не нашел упоминаний именно об этой версии задачи, автор которой, видимо, не понаслышке знал об опасностях работы в большой организации с плоской организационной структурой.
Четырем туристам нужно ночью переправиться через реку по подвесному мосту…
Никто не знает, почему у туристов имена музыкантов из группы U2.
Поскольку фонарик только один и без него никак не обойтись — единственный способ переправляться через мост такой: двое людей переходят на другую сторону, а потом одному из них нужно вернуться назад с фонариком. Чистый результат такого цикла — один человек переправляется через пропасть.
Когда два человека идут по мосту вместе, то общая скорость будет скоростью более медлительного из них. Если Адам переправляется вместе с Боно, то ему придется идти так же медленно, и этой паре потребуется для переправы через мост десять минут.
Вам может показаться, что для того, чтобы все четверо переправились, им понадобится четыре перехода туда и обратно. К счастью, это неверно.
Последний переход не требует возврата и позволяет переправиться через пропасть сразу двоим туристам. Таким образом, вам понадобятся два с половиной перехода туда и обратно, и в последний переход переправятся сразу двое.
Наиболее привлекательной идеей, пожалуй, представится такая: поручить Адаму, который переправляется через мост всего за одну минуту, сопровождать своих более медлительных друзей.
Во время первого перехода на другой берег пойдет Адам с самым медлительным из туристов Боно (ему нужно десять минут). Эта пара переправится за десять минут.
Потом Адам переправится обратно с фонариком (на это уйдет всего одна минута).
Теперь Адам пойдет через мост вместе со вторым медлительным спутником Эджем (которому требуется пять минут) и снова вернется назад (еще одна минута).
Наконец, через мост пойдут Адам и Лари (две минуты). Полное время: 10+ 1 + 5 + 1 + 2 = 19 минут. Это на две минуты дольше, чем требуется.
Если бы такая ситуация сложилась в реальной жизни, то большинство людей, вероятно, пришли бы к заключению, что она безнадежна. Нужно тянуть соломинки или проститься с Боно. Наверное, единственное обстоятельство, которое заставит вас продолжать поиски решения, — то, что у логических головоломок решение обязано существовать.
Попробуйте старый трюк и перечислите все ваши предположения. Самое основное из них — кто-то должен возвращаться, чтобы вернуть фонарик на тот берег, где его ждут спутники, верно?
Трудно понять, как можно разрешить эту проблему. В условии задачи четко говорится, что никто не может перейти мост без фонарика. (Если вы попробуете как-то «перехитрить» это условие, например перебросить фонарик через пропасть или использовать бечевку для перетаскивания фонарика через пропасть, интервьюер скажет вам, что это недопустимо.)
Мы также предположили, что два человека переправляются через пропасть, а назад возвращается один из них с фонариком. Может быть, стоит попробовать другие варианты?
Нет смысла совершать такие «переходы», которые никому не позволяют переправиться через пропасть. Кроме того, нам сказали, что трех людей (или больше) мост не выдержит. Это оставляет всего две возможности: по мосту идет один человек или два человека. Если вы и подумали о «полном цикле в обратную сторону», то есть это такой вариант, когда вы поручаете кому-то переправить обратно человека, уже перешедшего через пропасть, — в этом нет смысла. Мы вернулись к тому, с чего начинали.
Почему бы не послать на ту сторону вместе двух самых медлительных туристов? В любом случае Боно один израсходует большую часть из разрешенных семнадцати минут, почему бы не убить сразу двух зайцев, послав его вместе с также медлительным Эджем — в этом случае хотя бы Эдж не будет никого тормозить.
Эта идея — ключ к решению. Есть шанс, что, читая эти строки, вы воскликнете: «Я уже думал об этом! Ничего не получается!»
Дело в том, что это одна из тех хороших идей, которую легко испортить. Большинство людей подумает о том, чтобы начать с того, чтобы отправить Боно и Эджа вместе на другую сторону. И к чему это приведет?
У вас на другой стороне окажутся двое невыносимо медлительных людей с единственным фонариком. Это значит, что кому-то из них, вероятно Эджу, придется отправиться обратно (он пойдет медленно), чтобы переправить фонарик. На это уйдет пятнадцать минут, а еще трое людей, включая Эджа, не переправились через мост, и уже одно это не позволит этой троице переправиться за семнадцать минут.
Некоторые люди на этом и остановятся. Легко предположить, что подобное фиаско демонстрирует ложность ключевой идеи. Другие люди задумываются о том, не оставить ли этот переход пять/десять минут на самый конец. Последний переход особый, поскольку после него никому не нужно переправлять обратно фонарик.
Эта идея оказывается ничуть не лучше. Каким образом Эдж и Боно могут оказаться перед мостом с фонариком, когда двое других туристов уже переправились на другую сторону? Только если один из них (скорее всего Эдж?) уже побывал на той стороне и вернулся обратно с фонариком, но в этом случае на дорогу туда и обратно уже было потрачено десять минут, или фонарик вернул назад кто-то из их более проворных товарищей, но тогда он тоже ждет на этой стороне, чтобы переправиться. Это приводит к тем же проблемам, которые мы уже рассматривали раньше.
Вот тут многие люди и сдаются. Они исследовали два экстремальных варианта (медлительная пара переправляется первой или последней) и убедились, что они неэффективны.
Но эти крайние варианты — не единственная возможность. Медлительная пара может переправляться в середине. Вот что позволяет найти решение.
Цикл номер один: самая быстрая пара, Адам и Лари, переправляется через пропасть, потратив на это две минуты. Один из них (допустим, Адам — не важно, кто именно) немедленно возвращается обратно (на это уходит одна минута). На все это уйдет три минуты.
Цикл номер два: самая медленная пара, Эдж и Боно, переходят через мост, потратив десять минут. Как только они переправятся на другую сторону, они уже больше по мосту не путешествуют. Они передают фонарик более проворному товарищу, который уже там их поджидает (это Лари, предполагая, что Адам уже вернулся на исходный берег во время первого цикла). Лари приносит фонарик туда же (на это уйдет две минуты). Всего потрачено пятнадцать минут.
Наконец, последний третий цикл — переход только в одну сторону. Быстрая пара сейчас на исходной стороне. Они переходят пропасть во второй и последний раз (у них уходит на это две минуты). Всего потрачено семнадцать минут.
Корни этой головоломки можно обнаружить еще в раннем средневековье. Аббат Алкуин (735-804) [148]записал собрание головоломок, в которое вошла и ранняя версия хорошо знакомой многим головоломки о человеке, которому нужно было переправить через реку волка, козу и капусту. Козу нельзя оставлять вместе с волком, а козу — без присмотра вместе с капустой. За прошедшие с того времени двенадцать столетий было создано много вариаций на тему этой головоломки. Река иногда заменяется мостом, который вот-вот обвалится, или на блок, веревку и ведро, с помощью которых люди могут сбежать из башни. Ограничениями могут быть вес, время, запрет на то, чтобы оставлять женщин без присмотра, или уже упоминавшиеся выше отношения между хищником и его добычей. Головоломка о каннибалах и миссионерах, которым нужно переправиться через реку в двухместной лодке (в любой момент, когда каннибалов окажется больше, чем миссионеров, они съедят миссионеров), сыграла свою роль в первых исследованиях искусственного интеллекта. Уже первые программы ИИ смогли найти решение этой задачи.
Задача, используемая Microsoft,— одна из самых сложных в этом жанре. Она активно рассылалась по электронной почте в сопровождении своей «городской легенды». В этой легенде утверждалось, что «…один парень решил эту задачу, написав программу на языке С, правда, ему потребовалось на это 17 минут. Группа из 50 сотрудников компании Motorolaтак и не смогла ее решить… Обратите внимание: Microsoftтребует, чтобы вы решили эту задачу не дольше, чем за 5 минут». [149](На самом деле это не так.)
Перед вами две двери. Одна приведет вас в комнату, где вы пройдете интервью, а другая — на улицу…
Поскольку вы не знаете, скажет вам консультант правду или нет, бессмысленно задавать ему вопрос: «Это верная дверь?» или «Вы в этой компании работаете?» Вы получите ответ, который может оказаться и правдивым, и лживым. Используя свой единственный вопрос, вы не сумеет определить, правда это была или ложь. Вместо этого вам нужно придумать такой вопрос, что будет неважно, сказал консультант вам правду или солгал. Для этого нужно использовать двойное отрицание. К примеру, указать на дверь (не важно на какую) и сказать: «Если бы я спросил вас, этим ли путем я попаду на интервью, вы бы ответили да?»
Основная идея заключается в том, что законченный лжец солжет и насчет своего ответа на прямой вопрос о том, какая дверь приведет вас на интервью (который вы на самом деле ему не задавали!). Итак, законченный лжец скажет прямо противоположное тому, что бы он сказал, если бы ему задали прямой вопрос, то есть ложному ответу. Эти две лжи нейтрализуют одна другую, и получится, что лжец ответит вам «да» только в том случае, если вы указали на верную дверь. Что касается правдивого консультанта, то он тоже ответит «да» только если вы указали на верную дверь, потому что он, конечно, ответил бы так же и на прямой вопрос. Вы не узнаете, кто вам ответил — лжец или правдивый консультант, зато вы найдете нужную дверь.
Есть ряд альтернативных решений. Одно из них такое: «Если бы я спросил консультанта из другой фирмы, приведет ли эта дверь меня на интервью, он бы ответил утвердительно?» Все такие решения требуют, чтобы консультанты пожелали разобраться в подобных запутанных вопросах и дали на них ответ в том духе, в каком он ожидается. Но такие вопросы рискуют привлечь внимание лжеца к тому, что происходит нечто странное. Лучше, если лжец будет «безупречным лжецом», какие существуют только в логических головоломках. Если лжец будет действовать не так бездумно, как ожидается, и в первую очередь станет заботиться о том, чтобы обмануть, он может использовать тройное, а не двойное отрицание, чтобы сбить вас с толку.
Это можно обойти. Покажите на дверь и скажите: «Простите, я хотел бы пройти интервью в вашей компании — я попаду на него через эту дверь?»
Трюк с двойным отрицанием даст такой же результат, но данный вопрос звучит гораздо более естественно и позволяет лжецу солгать, не вдаваясь в сложный анализ. Это потому, что вам самому удается солгать (но только в том случае, если вы говорите с лжецом!), так как вы вовсе не хотите проходить интервью в фирме лжеца. Поэтому, если вы показываете на выход (который на самом деле как раз и может привести вас в фирму, где работает лжец, расположенную где-то на другом конце города), лжец солжет и скажет: «Нет, это не та дверь». А если вы покажете на дверь, которая должна на самом деле привести вас на интервью в нужной вам фирме, то есть на дверь, которая не приведет вас на интервью в конкурирующую фирму, на которую работает лжец, ему все равно придется солгать и сказать вам, что она туда приведет.
Эта версия «только с одним вопросом» старой загадки о лжеце и правдивом, похоже, появилась в 1950-е годы. [150]В той версии речь обычно шла о двух племенах правдивых и лживых, которые живут на далеком острове. Но была еще и несправедливо приписываемая Microsoftзадача, которая активно распространялась в Интернете, предлагавшая новый поворот. [151]Вы оказались на перекрестке. Одна дорога ведет в Microsoft,другая — в фирму Utopia.Вы хотите попасть в Utopia.Вас встречает человек, у которого на голове коробка с Microsoft Windows.Вы не знаете, кто он — лжец, правдивый человек или Билл Гейтс. Вам разрешается задать ему только один вопрос. Какой это будет вопрос?
Когда эта задача появилась в тематической конференции rec.puzzlesв Интернете, она вызвала целый шквал шутливых ответов, многие из которых были неистово «антимайкрософтовскими». Если вы считаете, что Билл Гейтс — сложная личность, о степени правдивости которой у нас нет никаких предположений, эта головоломка не имеет решения. Это все равно что заявить: «Вы оказались на острове Манхэттен, некоторые жители которого говорят правду, а некоторые — нет». Если же вы считаете, что Гейтс, что бы о нем ни говорили во время федерального расследования, не станет вас обманывать, когда вы попросите его указать дорогу, то он «считается» в этой головоломке честным и правдивым человеком, и тогда подходит прежнее решение.
Большинство решений, появившихся на rec.puzzles,были куда более творческими. Одно из них предлагало спросить того человека: «Куда я хочу сегодня пойти?» и сделать противоположное тому, что он ответит (на тех основаниях, «что они даже этого еще не поняли в Microsoft» [152]). В другом решении предлагалось спросить у этого парня: «Какой путь мне посоветует выбрать человек из другого племени?» и затем стукнуть его. «Если этот человек — правдивый или лжец, вы узнаете от него, какая дорога ведет в Utopia,а если нет — вам удастся отвесить бесплатную оплеуху Биллу Гейтсу». [153]
Почему банки для пива сужаются вверху и внизу?
В деревне, где живет пятьдесят семейных пар, каждый из мужей изменял своей жене…
Начните с ситуации, которая существует в деревне до того, как королева сделала свое заявление. Вы знаете, что каждыймужчина изменял своей жене.
Женщины, которые знают о вопиющих нарушениях супружеской верности, должны по закону убить своих неверных мужей. Почему же они еще этого не сделали?
Все дело в том, что только жена неверного мужа обязана его убить. Каждая из женщин деревни знает об изменах мужей другихсорока девяти женщин, но ничего не знает об изменах своего собственного мужа. Этикет исключает сообщение этого неприятного факта каждой из женщин.
Это, конечно, странная ситуация, но она вполне обычна для логических головоломок. Но однажды в деревню приезжает королева и говорит, что по крайней мере один муж неверен своей жене. Каким образом это изменит ситуацию?
Никак. По меньшей мере один???—должно быть, подумают жены, и каждая при этом будет гадать, кого из известных лично ей сорока девяти неверных мужей имела в виду королева. Заявление королевы не сообщило ничего нового кому бы то ни былов деревне.
Вот на чем попадаются многие кандидаты. Если заявление королевы неинформативно — о чем тут еще говорить? Ни одна женщина из-за этого не станет убивать своего мужа. Ничего не произойдет.
И предположение о том, что «ничего не произойдет», верно до конца того дня, когда королева сделала свое объявление.
Ничего не произойдет и на следующий день, и еще через день.
Давайте сразу перепрыгнем в сорок девятый день. Возьмем, к примеру, одну женщину по имени Эдна. Эдне известно об изменах сорока девяти мужей. Среди них есть и Макс — муж ее подруги Моники. Учитывая то, как быстро распространяются слухи, Эдна знает, что Монике должно быть известно (по меньшей мере) о сорока восьми неверных мужьях. Это те сорок восемь, о которых знает Эдна, минус Макс. Никто не осмелится рассказать Монике о проделках Макса.
Теперь вот в чем трюк. На сорок девятый день Эдна должна прийти к выводу, что Моника должна догадаться, что Макс ей неверен. Моника должна понять это (как рассуждает Эдна), потому что никто не был убит в предыдущиедни.
Если бы в деревне был только одинневерный муж, его жена должна была убить его в тот день, когда королева сделала свое объявление (назовем этот день первым). Так как в этом случае все женщины знали бы об этом единственном неверном муже за исключениемего жены. Она была бы единственной женщиной, которой бы не было известно о неверном муже. Поэтому объявление королевы было бы для нее как удар грома. Поскольку она не знала ни о каких неверных мужьях, этот «по крайней мере» один неверный муж должен быть ее собственным мужем. Она должна была бы убить его в тот самый день, как предписано законом. Конечно, в том случае, если бы в деревне был всего один неверный муж.
Вместо этого настает утро второго дня — и все мужчины живы. Это информирует всех жителей в деревне о том, что неверных мужей болееодного. И это, и безупречность королевы подразумевает, что неверных мужей должно быть по крайней мере два.
И если неверных мужей было бы только два, их жены убили бы их на второй день, а если бы их было три — жены бы убили их на третий день, и т. д. И если бы их было сорок восемь — их сорок восемь жен убили бы их на сорок восьмой день.
Сегодня уже сорок девятый день, и Моника, которая знает о сорока восьми неверных мужьях, должна быть удивлена тому, что в предыдущий день не произошло массового убийства. Единственное возможное объяснение (это все еще размышления Эдны о том, что должна была подумать Моника) — муж Моники как раз и есть сорок девятый герой адюльтера.
Таким образом, Эдна должна прийти к заключению, что всегда безупречно логичная Моника должна убить Макса к полуночи сорок девятого дня. Эдна может прийти к подобному же заключению относительно всех остальных женщин деревни. «Да,— думает Эдна, — на сорок девятый день произойдет кровавая баня».
И вот настал сорок девятый день, и все еще ничего не произошло. Единственное возможное объяснение теперь— это то, что Моника (и все остальные женщины) знали о сорок девятом неверном муже. Это не мог быть Макс. Это мог быть только один мужчина: собственный муж Эдны Эдгар!
Итак, на пятидесятый день Эдна должна прийти к заключению, что еемуж неверен ей. Все остальные женщины сделают о своих мужьях такой же вывод.
Ответ на головоломку — ничего не произойдет в первые сорок девять дней, а на пятидесятый день все пятьдесят жен убьют своих мужей.
Это шедевр среди логических головоломок. Однако нельзя с уверенностью утверждать, что эта задача также хороша как инструмент при отборе кандидатов на работу. Первое известное упоминание об этой головоломке в печати — опубликованная в 1958 году книга физика Джорджа Гамоу и математика Марвина Стерна Puzzle—Math («Математические головоломки»). [145]В их версии речь шла о неверных женах. С тех пор эта головоломка широко использовалась. К 1980-м годам речь уже идет о неверных мужьях, и головоломка становится темой исследования одной из научных лабораторий IBM. [146]Джон Аллен Паулос дал в книге Once upon a Number («Жило-было число»),опубликованной в 1998 году, версию, так похожую на ту, что используется Microsoft,что, возможно, корпорация использовала именно этот источник. [147]
Я подозреваю, что типичный читатель этой книги прочитал головоломку, подумал о ней немного, не придя ни к какому выводу, и заглянул в ответ: «Вот это да! Какая замечательная головоломка!» Потом, возможно, загадал ее двум-трем друзьям, которые также не сумели ее решить, но согласились, что у нее потрясающее решение, когда узнали о нем. Популярность логической головоломки никак не зависит от того, может кто-то ее решить или нет.
Это становится проблемой только если кто-то пытается использовать данную головоломку для отбора кандидатов на работу. Хотя в причудливой «рекурсивной» логике, используемой для решения этой задачи, можно найти определенные параллели с программированием, эту головоломку очень трудно решить людям, которые понимают поведение реальных людей (а это полезное качество даже для программиста). Когда они не могут ее решить, это обычно происходит из-за того, что они приходят к верному заключению, что если уж ничего не происходит сразу после заявления королевы, то с течение времени драматизм ситуации будет только ослабевать. Обычно это вполне разумный вывод, если речь идет не о решении логических головоломок.
Злобный демон поймал много гномов (их точное количество неизвестно)…
Какие выводы может сделать в этой ситуации безупречно логичный гном? Наверное, никаких. Скорее всего типичный гном видит других гномов с зелеными или красными камнями. Он все еще ничего не знает о том, какого цвета камень у него на лбу.
Но представьте, что есть гном, который видит толькокрасные или толькозеленые камни на лбу у других гномов. Поскольку демон сообщил всем гномам, что среди них есть хотя бы один такой, у которого красный камень на лбу, гном, который видит толькозеленые камни, может прийти к выводу, что он и есть единственный гном с красным камнем. И наоборот: гном, который видит только красные камни, может заключить, что он — единственный гном с зеленым камнем на лбу.
Теперь подумайте о гипотетическом гноме, который видит вокруг только гномов с зелеными камнями. Он должен понять, что у него на лбу — красный камень. Все, что ему нужно сделать — просто шагнуть вперед на следующей перекличке после объявления демона. Он может быть уверен в том, что его безупречно логичные товарищи останутся в строю. Это и будет правильным ответом, который потребовал демон.
Вы можете спросить: а почему другие гномы останутся в строю? Потому ли, что они знают, что у них зеленые камни? Нет. Каждый из этих гномов видит один красный камень (на лбу у того гнома, который собирается выйти из строя) и много зеленых камней (у всех остальных). Это не позволяет никому из них дедуцировать цвет их собственных камней. Они знают, что должен быть хотя бы один камень каждого цвета, и они видят по крайней мере один камень каждого из цветов. Их собственный камень может быть любого цвета.
Эти гномы остаются в строю, потому что им неизвестен цвет их собственного камня. Помните, если кто-то сделает неверный шаг, все гномы погибнут. Логика подсказывает, что единственное безопасное решение — оставаться в строю, если только гном не уверен в том, что у него на лбу красный камень.
Это еще не решение проблемы. Это только один из возможных сценариев, который проще всего анализировать. Это не значит, что именно это реальная ситуация: нам только сообщили, что гномов много, но неизвестно, сколько точно и красные у них на лбу камни или зеленые.
Если описанный выше сценарий не будетреализован во время первого построения (а скорее всего он не будетреализован), все гномы могут прийти к выводу, что есть по крайней мере двакамня каждого из двух цветов. Это могло быть очевидно с самого начала. (если бы все гномы видели много камней разного цвета), но если бы был гном, который бы видел только один камень данного цвета, он мог бы во время второго построения прийти к выводу, что он — вторая персона с камнем этого цвета. Он и второй гном с камнем этого цвета (который рассуждает идентичным образом) сделают шаг вперед во время второго построения… Эта цепочка рассуждений и метарассуждений (рассуждений о рассуждениях) будет продолжаться, пока количество построений после объявления демона не совпадет с реальным количеством гномов с камнями более редкого цвета. На этом построении все безупречно логичные гномы с камнем этого цвета сделают шаг вперед, и (если демон держит свои обещания) все гномы обретут свободу.
Любому студенту, который изучает программирование, известно имя Алонзо Черча. В 1930-х годах Черч сформулировал так называемый тезис Черча — Тьюринга — краеугольный камень в исследованиях искусственного интеллекта (суть тезиса в том, что компьютер можно запрограммировать делать все то, что могут делать люди). Черч также один из немногих людей, которых можно обоснованно считать авторами логических головоломок мирового класса. Примерно в то же время, когда он сформулировал свой знаменитый тезис, он придумал головоломку о трех садовниках, у которых были пятна грязи на лбу. Их видит другой человек и замечает, что по крайней мере у одного из них грязь на лбу. Каждому из садовников нужно дедуцировать, грязный у него лоб или чистый.
Эта головоломка послужила вдохновением для целого жанра задач о людях, которые должны дедуцировать, какого цвета у них на голове шляпа или печать на лбу. В последние годы Раймонд Смаллиан предложил много вариаций хороших задач на эту тему. Тем или иным способом практически все эти головоломки решаются на основе предположений о поведении безупречно логичных существ, которые делают выводы на основе того, что их коллеги, также безупречно логичные существа, не делают определенного вывода в течение какого-то определенного срока.
Головоломка о «деревне неверных мужей», наверное, самый вычурный вариант. Задача о демоне и гномах отличается от нее тем, что вам, когда вы рассуждаете, нужно поставить себя на место одного из участников этой гипотетической ситуации и продумывать свою стратегию поведения. Я нигде не нашел упоминаний именно об этой версии задачи, автор которой, видимо, не понаслышке знал об опасностях работы в большой организации с плоской организационной структурой.
Четырем туристам нужно ночью переправиться через реку по подвесному мосту…
Никто не знает, почему у туристов имена музыкантов из группы U2.
Поскольку фонарик только один и без него никак не обойтись — единственный способ переправляться через мост такой: двое людей переходят на другую сторону, а потом одному из них нужно вернуться назад с фонариком. Чистый результат такого цикла — один человек переправляется через пропасть.
Когда два человека идут по мосту вместе, то общая скорость будет скоростью более медлительного из них. Если Адам переправляется вместе с Боно, то ему придется идти так же медленно, и этой паре потребуется для переправы через мост десять минут.
Вам может показаться, что для того, чтобы все четверо переправились, им понадобится четыре перехода туда и обратно. К счастью, это неверно.
Последний переход не требует возврата и позволяет переправиться через пропасть сразу двоим туристам. Таким образом, вам понадобятся два с половиной перехода туда и обратно, и в последний переход переправятся сразу двое.
Наиболее привлекательной идеей, пожалуй, представится такая: поручить Адаму, который переправляется через мост всего за одну минуту, сопровождать своих более медлительных друзей.
Во время первого перехода на другой берег пойдет Адам с самым медлительным из туристов Боно (ему нужно десять минут). Эта пара переправится за десять минут.
Потом Адам переправится обратно с фонариком (на это уйдет всего одна минута).
Теперь Адам пойдет через мост вместе со вторым медлительным спутником Эджем (которому требуется пять минут) и снова вернется назад (еще одна минута).
Наконец, через мост пойдут Адам и Лари (две минуты). Полное время: 10+ 1 + 5 + 1 + 2 = 19 минут. Это на две минуты дольше, чем требуется.
Если бы такая ситуация сложилась в реальной жизни, то большинство людей, вероятно, пришли бы к заключению, что она безнадежна. Нужно тянуть соломинки или проститься с Боно. Наверное, единственное обстоятельство, которое заставит вас продолжать поиски решения, — то, что у логических головоломок решение обязано существовать.
Попробуйте старый трюк и перечислите все ваши предположения. Самое основное из них — кто-то должен возвращаться, чтобы вернуть фонарик на тот берег, где его ждут спутники, верно?
Трудно понять, как можно разрешить эту проблему. В условии задачи четко говорится, что никто не может перейти мост без фонарика. (Если вы попробуете как-то «перехитрить» это условие, например перебросить фонарик через пропасть или использовать бечевку для перетаскивания фонарика через пропасть, интервьюер скажет вам, что это недопустимо.)
Мы также предположили, что два человека переправляются через пропасть, а назад возвращается один из них с фонариком. Может быть, стоит попробовать другие варианты?
Нет смысла совершать такие «переходы», которые никому не позволяют переправиться через пропасть. Кроме того, нам сказали, что трех людей (или больше) мост не выдержит. Это оставляет всего две возможности: по мосту идет один человек или два человека. Если вы и подумали о «полном цикле в обратную сторону», то есть это такой вариант, когда вы поручаете кому-то переправить обратно человека, уже перешедшего через пропасть, — в этом нет смысла. Мы вернулись к тому, с чего начинали.
Почему бы не послать на ту сторону вместе двух самых медлительных туристов? В любом случае Боно один израсходует большую часть из разрешенных семнадцати минут, почему бы не убить сразу двух зайцев, послав его вместе с также медлительным Эджем — в этом случае хотя бы Эдж не будет никого тормозить.
Эта идея — ключ к решению. Есть шанс, что, читая эти строки, вы воскликнете: «Я уже думал об этом! Ничего не получается!»
Дело в том, что это одна из тех хороших идей, которую легко испортить. Большинство людей подумает о том, чтобы начать с того, чтобы отправить Боно и Эджа вместе на другую сторону. И к чему это приведет?
У вас на другой стороне окажутся двое невыносимо медлительных людей с единственным фонариком. Это значит, что кому-то из них, вероятно Эджу, придется отправиться обратно (он пойдет медленно), чтобы переправить фонарик. На это уйдет пятнадцать минут, а еще трое людей, включая Эджа, не переправились через мост, и уже одно это не позволит этой троице переправиться за семнадцать минут.
Некоторые люди на этом и остановятся. Легко предположить, что подобное фиаско демонстрирует ложность ключевой идеи. Другие люди задумываются о том, не оставить ли этот переход пять/десять минут на самый конец. Последний переход особый, поскольку после него никому не нужно переправлять обратно фонарик.
Эта идея оказывается ничуть не лучше. Каким образом Эдж и Боно могут оказаться перед мостом с фонариком, когда двое других туристов уже переправились на другую сторону? Только если один из них (скорее всего Эдж?) уже побывал на той стороне и вернулся обратно с фонариком, но в этом случае на дорогу туда и обратно уже было потрачено десять минут, или фонарик вернул назад кто-то из их более проворных товарищей, но тогда он тоже ждет на этой стороне, чтобы переправиться. Это приводит к тем же проблемам, которые мы уже рассматривали раньше.
Вот тут многие люди и сдаются. Они исследовали два экстремальных варианта (медлительная пара переправляется первой или последней) и убедились, что они неэффективны.
Но эти крайние варианты — не единственная возможность. Медлительная пара может переправляться в середине. Вот что позволяет найти решение.
Цикл номер один: самая быстрая пара, Адам и Лари, переправляется через пропасть, потратив на это две минуты. Один из них (допустим, Адам — не важно, кто именно) немедленно возвращается обратно (на это уходит одна минута). На все это уйдет три минуты.
Цикл номер два: самая медленная пара, Эдж и Боно, переходят через мост, потратив десять минут. Как только они переправятся на другую сторону, они уже больше по мосту не путешествуют. Они передают фонарик более проворному товарищу, который уже там их поджидает (это Лари, предполагая, что Адам уже вернулся на исходный берег во время первого цикла). Лари приносит фонарик туда же (на это уйдет две минуты). Всего потрачено пятнадцать минут.
Наконец, последний третий цикл — переход только в одну сторону. Быстрая пара сейчас на исходной стороне. Они переходят пропасть во второй и последний раз (у них уходит на это две минуты). Всего потрачено семнадцать минут.
Корни этой головоломки можно обнаружить еще в раннем средневековье. Аббат Алкуин (735-804) [148]записал собрание головоломок, в которое вошла и ранняя версия хорошо знакомой многим головоломки о человеке, которому нужно было переправить через реку волка, козу и капусту. Козу нельзя оставлять вместе с волком, а козу — без присмотра вместе с капустой. За прошедшие с того времени двенадцать столетий было создано много вариаций на тему этой головоломки. Река иногда заменяется мостом, который вот-вот обвалится, или на блок, веревку и ведро, с помощью которых люди могут сбежать из башни. Ограничениями могут быть вес, время, запрет на то, чтобы оставлять женщин без присмотра, или уже упоминавшиеся выше отношения между хищником и его добычей. Головоломка о каннибалах и миссионерах, которым нужно переправиться через реку в двухместной лодке (в любой момент, когда каннибалов окажется больше, чем миссионеров, они съедят миссионеров), сыграла свою роль в первых исследованиях искусственного интеллекта. Уже первые программы ИИ смогли найти решение этой задачи.
Задача, используемая Microsoft,— одна из самых сложных в этом жанре. Она активно рассылалась по электронной почте в сопровождении своей «городской легенды». В этой легенде утверждалось, что «…один парень решил эту задачу, написав программу на языке С, правда, ему потребовалось на это 17 минут. Группа из 50 сотрудников компании Motorolaтак и не смогла ее решить… Обратите внимание: Microsoftтребует, чтобы вы решили эту задачу не дольше, чем за 5 минут». [149](На самом деле это не так.)
Перед вами две двери. Одна приведет вас в комнату, где вы пройдете интервью, а другая — на улицу…
Поскольку вы не знаете, скажет вам консультант правду или нет, бессмысленно задавать ему вопрос: «Это верная дверь?» или «Вы в этой компании работаете?» Вы получите ответ, который может оказаться и правдивым, и лживым. Используя свой единственный вопрос, вы не сумеет определить, правда это была или ложь. Вместо этого вам нужно придумать такой вопрос, что будет неважно, сказал консультант вам правду или солгал. Для этого нужно использовать двойное отрицание. К примеру, указать на дверь (не важно на какую) и сказать: «Если бы я спросил вас, этим ли путем я попаду на интервью, вы бы ответили да?»
Основная идея заключается в том, что законченный лжец солжет и насчет своего ответа на прямой вопрос о том, какая дверь приведет вас на интервью (который вы на самом деле ему не задавали!). Итак, законченный лжец скажет прямо противоположное тому, что бы он сказал, если бы ему задали прямой вопрос, то есть ложному ответу. Эти две лжи нейтрализуют одна другую, и получится, что лжец ответит вам «да» только в том случае, если вы указали на верную дверь. Что касается правдивого консультанта, то он тоже ответит «да» только если вы указали на верную дверь, потому что он, конечно, ответил бы так же и на прямой вопрос. Вы не узнаете, кто вам ответил — лжец или правдивый консультант, зато вы найдете нужную дверь.
Есть ряд альтернативных решений. Одно из них такое: «Если бы я спросил консультанта из другой фирмы, приведет ли эта дверь меня на интервью, он бы ответил утвердительно?» Все такие решения требуют, чтобы консультанты пожелали разобраться в подобных запутанных вопросах и дали на них ответ в том духе, в каком он ожидается. Но такие вопросы рискуют привлечь внимание лжеца к тому, что происходит нечто странное. Лучше, если лжец будет «безупречным лжецом», какие существуют только в логических головоломках. Если лжец будет действовать не так бездумно, как ожидается, и в первую очередь станет заботиться о том, чтобы обмануть, он может использовать тройное, а не двойное отрицание, чтобы сбить вас с толку.
Это можно обойти. Покажите на дверь и скажите: «Простите, я хотел бы пройти интервью в вашей компании — я попаду на него через эту дверь?»
Трюк с двойным отрицанием даст такой же результат, но данный вопрос звучит гораздо более естественно и позволяет лжецу солгать, не вдаваясь в сложный анализ. Это потому, что вам самому удается солгать (но только в том случае, если вы говорите с лжецом!), так как вы вовсе не хотите проходить интервью в фирме лжеца. Поэтому, если вы показываете на выход (который на самом деле как раз и может привести вас в фирму, где работает лжец, расположенную где-то на другом конце города), лжец солжет и скажет: «Нет, это не та дверь». А если вы покажете на дверь, которая должна на самом деле привести вас на интервью в нужной вам фирме, то есть на дверь, которая не приведет вас на интервью в конкурирующую фирму, на которую работает лжец, ему все равно придется солгать и сказать вам, что она туда приведет.
Эта версия «только с одним вопросом» старой загадки о лжеце и правдивом, похоже, появилась в 1950-е годы. [150]В той версии речь обычно шла о двух племенах правдивых и лживых, которые живут на далеком острове. Но была еще и несправедливо приписываемая Microsoftзадача, которая активно распространялась в Интернете, предлагавшая новый поворот. [151]Вы оказались на перекрестке. Одна дорога ведет в Microsoft,другая — в фирму Utopia.Вы хотите попасть в Utopia.Вас встречает человек, у которого на голове коробка с Microsoft Windows.Вы не знаете, кто он — лжец, правдивый человек или Билл Гейтс. Вам разрешается задать ему только один вопрос. Какой это будет вопрос?
Когда эта задача появилась в тематической конференции rec.puzzlesв Интернете, она вызвала целый шквал шутливых ответов, многие из которых были неистово «антимайкрософтовскими». Если вы считаете, что Билл Гейтс — сложная личность, о степени правдивости которой у нас нет никаких предположений, эта головоломка не имеет решения. Это все равно что заявить: «Вы оказались на острове Манхэттен, некоторые жители которого говорят правду, а некоторые — нет». Если же вы считаете, что Гейтс, что бы о нем ни говорили во время федерального расследования, не станет вас обманывать, когда вы попросите его указать дорогу, то он «считается» в этой головоломке честным и правдивым человеком, и тогда подходит прежнее решение.
Большинство решений, появившихся на rec.puzzles,были куда более творческими. Одно из них предлагало спросить того человека: «Куда я хочу сегодня пойти?» и сделать противоположное тому, что он ответит (на тех основаниях, «что они даже этого еще не поняли в Microsoft» [152]). В другом решении предлагалось спросить у этого парня: «Какой путь мне посоветует выбрать человек из другого племени?» и затем стукнуть его. «Если этот человек — правдивый или лжец, вы узнаете от него, какая дорога ведет в Utopia,а если нет — вам удастся отвесить бесплатную оплеуху Биллу Гейтсу». [153]
Почему банки для пива сужаются вверху и внизу?