VAL писал(а):
Логик оказался на острове...
Всегда можно узнать, либо "лжец данный туземец или нет" - достаточно спросить "1=1?", либо "сколько домов в его деревне", если количество их возможных значений не более двух".
Но нельзя одновременно узнать: лжец ли туземец и сколько домов в его деревне.
Пусть может быть, скажем, только 1 или 2 дома в деревне, если это так, то метод даст правильный результат.
Пусть
- правдивость туземца.
На вопрос-утверждение
логика туземец отвечает значением (да-нет) утверждения
.
Действительно, если
, то
, а если
, то
.
Пусть утверждение
характеризует число домов в деревне туземца, скажем
="в твоей деревне один дом" дает
если дом один и
если два дома.
Вопрос-утверждение
логика очевидно зависит только от двух утверждений:
и
, то есть является одной из
-ти логических функций от двух логических переменных
и
.
Если среди этих функций найдется хотя бы одна, при которой утверждение-ответ
туземца существенно зависит только от переменной
, то есть если ответ эквивалентен утверждению
либо утверждению
, то решение существует.
Смотрим, функция
(находим ответ, подставляя значения
):
-
дает ответ
на вопрос "1=0?"
-
дает ответ
на вопрос "1=1?"
-
дает ответ
на вопрос "ты правдив?"
-
дает ответ
на вопрос "ты лжив?"
-
дает ответ
на вопрос "в твоей деревне один дом?"
-
дает ответ
на вопрос "в твоей деревне НЕ один дом?"
-
дает ответ
на вопрос "ты правдив, или в твоей деревне один дом?"~"если ты лжив, то в твоей деревне один дом?"~"если в твоей деревне не один дом, ты правдив?
-
дает ответ
на вопрос "ты правдив, или в твоей деревне не один дом?"~"если ты лжив, то в твоей деревне не один дом?"~"если в твоей деревне один дом, ты правдив?
-
дает ответ
на вопрос "ты лжив, или в твоей деревне один дом?"~"если ты правдив, то в твоей деревне один дом?"~"если в твоей деревне не один дом, ты лжив?
-
дает ответ
на вопрос "ты лжив, или в твоей деревне не один дом?"~"если ты правдив, то в твоей деревне не один дом?"~"если в твоей деревне один дом, ты лжив?
-
дает ответ
на вопрос "ты правдив, и в твоей деревне один дом?"
-
дает ответ
на вопрос "ты правдив, и в твоей деревне не один дом?"
-
дает ответ
на вопрос "ты лжив, и в твоей деревне один дом?"
-
дает ответ
на вопрос "ты лжив, и в твоей деревне не один дом?"
-
дает ответ
на вопрос "то, что ты правдив также верно, как и то, что в твоей деревне один дом?"~"если я спрошу тебя: в твоей деревне один дом? - ты ответишь: да?"
-
или же
дает ответ
на вопрос "то, что ты лжив верно также, как и то, что в твоей деревне один дом?"~"если я спрошу тебя: в твоей деревне не один дом? - ты ответишь: да?"
Как видно, в качестве ответа можно получить любую из функций (отображение
- биекция), а в нашем случае подходят два последних вопроса:
и
- ответу
на первый логик должен воспринимать как истинный ответ на вопрос
, а ответу
на второй из - как ложный ответ на этот вопрос.
Если количество возможных значений числа домов в деревне туземца более двух, то ответ гарантировано узнать НЕВОЗМОЖНО!
Конечно, если логику известно число домов
и он хочет это число подтвердить, то ему следует взять
="в твоей деревне
домов", но, см. пункт 3:
VAL писал(а):
3. Путешественник заранее не знает, сколько домов в деревне туземца.
и не может угадать его случайно в силу пункта 4:
VAL писал(а):
4. Путешественник не угадал случайно, сколько домов в деревне туземца.
Туземец не должен отвечать на не имеющие определенного значения вопросы, зависящие от некоторых неопределенных переменных (например, от ответа на сам вопрос, который есть такая переменная) - как это было в "задаче" с детектором лжи.
nikov писал(а):
Не нужно умалчивать, что логик получает еще любое количество визуальной информации о поведении туземца.
Логик не может заставить туземца что либо делать, кроме как отвечать "Да-Нет" на устный вопрос-утверждение:
Туземец не должен подчинятся вопросу-приказу: "подпрыгни столько раз, сколько домов в твоей деревне и после ответь: ты лжец?".
На вопрос: "Есть ли в этой тетрадке (с числами по порядку, записанными через страницу) число домов в твоей деревне?" туземец не должен отвечать сразу, как только найдет это число в тетрадке - он может, не подавая виду, долиcтать тетрадку до конца и лишь затем ответить
на вопрос с очевидно истинным ответом, а может и не отвечать вовсе, ибо это не устный вопрос - туземец вообще ничего не должен ни перелистывать, ни рассматривать - только слушать.
Также на вопрос: "Я буду называть тебе числа по-порядку, и когда назову число домов в твой деревне, ответь: столько ли домов в твоей деревне?" туземец не должен отвечать тогда, когда услышит число домов в своей деревне - он может дождаться конца вопроса, и только после этого ответить "столько ли домов в его деревне?", сколько было, когда логик произносил число домов в его деревне (это просто вопрос "n=n?") - мы лишь узнаем: лжец ли туземец.