Голубоглазые островитяне

Голубые глаза

На острове живет 200 человек. Островитяне абсолютно логичны в каждом своем решении. Но вот беда: они на острове пленники.

Из 200 островитян у 100 человек глаза голубые, а у 100 — карие. Но никто не знает, кого цвета его собственные глаза — голубые, карие или вообще зеленые. На острове нет отражающих поверхностей, так что никто не может просто увидеть цвет своих глаз в отражении. Кроме того людям под страхом смерти запрещено общаться друг с другом как устно, так и письменно.

Тем не менее, каждый из них может видеть цвет глаз остальных 199 островитян.

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

Однажды на остров прибывает иностранец, о котором известно, что он исключительно правдив. Все островитяне собрались посмотреть на него. Желая помочь пленникам, иностранец объявил: «Как минимум у одного из вас голубые глаза».

Вопрос: сколько человек после этого объявления покинет остров и когда именно?

Подсказка

Решить эту задачу без предварительного упрощения практически невозможно. Поэтому давайте немного изменим условие. Допустим, на острове 200 пленников и голубоглазый среди них только один. Он видит, что у всех остальных глаза карие. А раз иностранец сказал, что видит человека с голубыми глазами, значит, это должен быть он сам. Исходя из этого, голубоглазый сбежит с острова на первом же корабле (т. е. в первую ночь после объявления иностранца).

Хорошо, теперь представьте, что среди островитян есть два человека с голубыми глазами, а у остальных 198 человек глаза карие. Как будут развиваться события в этом случае? Каждый голубоглазый видит 198 кареглазых и еще одного человека с голубыми глазами. Каждый из них подумает: «Если этот человек — единственный голубоглазый, он покинет остров сегодня же ночью». Но на следующее утро каждый из голубоглазых видит, что второй все еще находится на острове. Каждый из них думает: «Итак, этот человек с голубыми глазами не сбежал. Следовательно, он знает, что есть еще кто-то голубоглазый. Поскольку я других голубоглазых не вижу, значит, голубые глаза у меня самого». В результате оба голубоглазых уплывут с острова во вторую ночь.

Все еще не догадались?

Посмотреть решение

Краткий ответ: все 100 голубоглазых уплывут на сотую ночь после объявления иностранца.

Теперь давайте разберем это подробнее. Продолжим логические рассуждения, изложенные в подсказке.

Мы уже выяснили, что если на острове всего один голубоглазый, он сбежит в первую ночь, если их два — во вторую.

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

Паттерн повторяется для любого числа голубоглазых. Четыре человека с голубыми глазами сбегут на четвертую ночь, пять — на пятую. Всего голубоглазых островитян сто, значит, они все сбегут на сотую ночь.

Копнем глубже

Задача решена, но остаются вопросы. Что такого важного было в словах иностранца? Почему пленники не сбежали раньше? Ведь наличие голубоглазых — не тайна: каждый из пленников видит 99-100 людей с голубыми глазами.

Ответ кроется в общем знании. Общее знание (англ. common knowledge) имеет место в ситуации, когда каждому индивиду из некоторой группы известно о наступлении некого события, о наличии этого знания у других представителей группы, о наличии знания о наличии знания и так далее.

Каждый голубоглазый островитянин, видя своих товарищей, знает, что есть еще 99 человек с голубыми глазами и 100 человек с карими глазами. Но только объявление иностранца дает общее знание о том, что среди островитян есть как минимум один голубоглазый. До этого каждый отдельный островитянин не знал, что все знают, что все знают, что есть хотя бы один человек с голубыми глазами, и в результате никто не мог сбежать.

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

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

python books logo

Хотите решать больше задач по Python

Подписывайтесь на нас в Телеграм

×