2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Рыцари и лгуны
Сообщение23.12.2012, 20:50 
Аватара пользователя


10/11/11
93
Kyiv
В основном меня интересует, как можно строить вопросы с так называемым двойным дном.
А вообще... Сама задача, по которой у меня возникло осложнение.

На неком острове живут неотличимые друг от друга живущие вместе рыцари и лгуны. Рыцари всегда говорят правду, а лгуны - всегда лгут. Как точно одним вопросом узнать у первого встречного аборигена (естественно, принадлежность к рыцарям или лгунам которого неизвестна), живет ли у него дома ручной крокодил?

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение23.12.2012, 21:50 
Заслуженный участник


02/08/10
629
Пусть наш вопрос - это некая функция.
Тогда, очевидно, она может принимать два логических параметра: есть ли крокодил, и правду ли говорит человек.
Значит все возможные входные данные для неё:
0 0
0 1
1 0
1 1
Первые две строки соответствуют лгуну, а значит мы получим не прямое значение функции, а обратное ( отрицание).
Тогда, если положить, чтоб, если у аборигена есть крокодил,то он должен ответить "Да", результаты нашей функции принимают такой вид:
f(0,0)=1
f(0,1)=0
f(1,0)=0
f(1,1)=1
Как видим, этому соответствует функция: f(a,b)=(a==b) , то-есть она должна быть равна 1, когда параметры её равны. Осталось подобрать соответствующий вопрос:
"Верно ли, что вы одновременно лгун и у вас нету крокодила, либо, вы говорите правду и у вас есть крокодил?"

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение24.12.2012, 00:01 
Аватара пользователя


27/02/12
3959
MrDindows в сообщении #662603 писал(а):
Осталось подобрать соответствующий вопрос:

В свою бытность студентом решал аналогичную задачу, причем в условии
было оговорено, что абориген отвечает либо "да", либо "нет".
Я тогда сформулировал так (применительно к крокодилу):
На вопрос - "есть ли у тебя крокодил?" - ты отвечаешь "да"?
Ну, принцип один - лжеца нужно заставить соврать дважды.

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение24.12.2012, 00:38 
Заслуженный участник


02/08/10
629
miflin в сообщении #662726 писал(а):
MrDindows в сообщении #662603 писал(а):
Осталось подобрать соответствующий вопрос:

В свою бытность студентом решал аналогичную задачу, причем в условии
было оговорено, что абориген отвечает либо "да", либо "нет".
Я тогда сформулировал так (применительно к крокодилу):
На вопрос - "есть ли у тебя крокодил?" - ты отвечаешь "да"?
Ну, принцип один - лжеца нужно заставить соврать дважды.

Да, кстати, так более красивее.
Но принцип другой. У вас сам вопрос заключается на принципе "соврать дважды", а мой вопрос основан, так сказать, на функциональном принципе=)

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение24.12.2012, 10:23 


07/11/12
137
По принципу двойного отрицания можно предложить вопрос: "Ответите Вы утвердительно на вопрос: "Живет у Вас дома ручной крокодил?""

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение24.12.2012, 10:42 
Аватара пользователя


27/02/12
3959

(Оффтоп)

matidiot в сообщении #662855 писал(а):
"Ответите Вы утвердительно на вопрос: "Живет у Вас дома ручной крокодил?""

miflin в сообщении #662726 писал(а):
На вопрос - "есть ли у тебя крокодил?" - ты отвечаешь "да"?

Я вот тут пораскинул мозгой, и подумал, что Вам абориген всегда ответит
положительно, а мне - отрицательно, ибо Вы обратились к нему на "Вы", а я - на "ты".
:mrgreen:

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение25.12.2012, 18:11 
Заслуженный участник
Аватара пользователя


11/03/08
10006
Москва

(Оффтоп)

Зато обратившемуся на "ты" он ответит взаимностью...

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение25.12.2012, 20:05 
Аватара пользователя


27/02/12
3959
Евгений Машеров в сообщении #663656 писал(а):

(Оффтоп)

Зато обратившемуся на "ты" он ответит взаимностью...

(Оффтоп)

Ах, если бы он был аборигенкой...

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение25.12.2012, 22:05 
Аватара пользователя


01/12/11

8634
Эту задачу легко усложнить, добавив к условию следующую деталь.
Помимо того, что каждый житель острова либо рыцарь (всегда говорящий правду), либо лжец (всегда лгущий), часть островитян не в своём уме, то есть считают все истинные утверждения ложными, а все ложные утверждения -- истинными.

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение25.12.2012, 22:56 
Аватара пользователя


27/02/12
3959
Можно ещё усложнить, попытавшись перевоплотиться в островитянина,
который не в своём уме, и если удастся, то решать задачу,
не выходя из образа. :D

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение25.12.2012, 23:01 
Заслуженный участник
Аватара пользователя


06/04/10
3152
Есть вариант, где один вопрос задаётся одному из тройки - правдун, лжец и балаболка. Цель - выбор небалаболки.

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение23.01.2013, 22:21 
Аватара пользователя


10/11/11
93
Kyiv
MrDindows в сообщении #662603 писал(а):
Пусть наш вопрос - это некая функция.
Тогда, очевидно, она может принимать два логических параметра: есть ли крокодил, и правду ли говорит человек.
Значит все возможные входные данные для неё:
0 0
0 1
1 0
1 1
Первые две строки соответствуют лгуну, а значит мы получим не прямое значение функции, а обратное ( отрицание).
Тогда, если положить, чтоб, если у аборигена есть крокодил,то он должен ответить "Да", результаты нашей функции принимают такой вид:
f(0,0)=1
f(0,1)=0
f(1,0)=0
f(1,1)=1
Как видим, этому соответствует функция: f(a,b)=(a==b) , то-есть она должна быть равна 1, когда параметры её равны. Осталось подобрать соответствующий вопрос:
"Верно ли, что вы одновременно лгун и у вас нету крокодила, либо, вы говорите правду и у вас есть крокодил?"


Идея с булевой функцией интересна, но вопрос не приносит полезной информации, мне кажется (может я не прав, поправьте меня). Стоит учесть, что главная у нас информация, чтобы получить ответ такой, чтобы однозначно знать - есть ли у аборигена крокодил. Выходит, если задается вопрос лжецу, у которого нет крокодила (f(0,0) = 1), то он ответит утвердительно. В то же время, рыцарь, у которого есть крокодил (f(1,1) = 1) также ответит утвердительно. Аналогично, когда нет крокодилов. Поэтому СДНФ f(a,b) = a~b не решает нашу задачу :-(

 Профиль  
                  
 
 Re: Рыцари и лгуны
Сообщение24.01.2013, 00:44 
Аватара пользователя


10/11/11
93
Kyiv
А вообще да, логика товарища miflin. В принципе, к этому ответу можно снова же прийти через булевые функции. Правда, следующий метод решения немного искусственный и выводится при знании третьего параметра. Данная функция идет от трех переменных f(a,b,c): a - лгун/рыцарь, b - ответ на вопрос про наличие крокодила, с - некий параметр (который выясниться по ходу дела).
Первые два параметра строятся по той же логике. Причем первая переменная должна оказаться фиктивной. Кроме того, сама функция не обязательно должна задавать вопрос. Более того, мы подбираем функцию так, чтобы она была правдива (или ложна, это лишь поменяет "да" на "нет") тогда, когда оба параметры b и c одинаковы (разные, в обратном случае), и наоборот. Мы выставляем это так, поскольку нам нужно получить вопрос, однозначно определяющий, имеет ли абориген ручного крокодила. По полученному вектору f(a,b,c) = (1,0,0,1,1,0,0,1) видим, что f(a,b,c) = f(b,c) = (1,0,0,1) = b~c. В этом случае даже не надо вникать в СДНФ или СКНФ, чтобы сложить нужный вопрос.

Спасибо всем за помощь :)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group