Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Непонятная задачка
Показать сообщение отдельно

Ветеран


Сообщения: 1813
Благодарности: 146

Профиль | Отправить PM | Цитировать


Элементарно, Ватсон! Что требуют в первую очередь? Выразить ответы дипломатов в символьном виде. Это раз плюнуть:

Ответ дипломата A: C == spy
Ответ дипломата B: B /= spy
Ответ дипломата C: C /= spy
Ответ дипломата D: A == spy

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

Теперь составляем таблицу с предположениями, кто там из дипломатов "spy", и логическими переменными, характеризующими правдивость ответов дипломатов при любом раскладе. Формализация предположений уже задана: "Let A", "Let B" и так далее. Получаем что-то вроде:

Код: Выделить весь код
-------- | Let A | Let B | Let C | Let D |
---------|-------|-------|-------|-------|
C == spy | false | false | true  | false |
B /= spy | true  | false | true  | true  |
C /= spy | true  | true  | false | true  |
A == spy | true  | false | false | false |
Ну и, соответственно, ищутся нужные варианты: если соврал только один, то должно быть 3 true и 1 false, и т. д.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:06, 30-10-2007 | #2

Название темы: Непонятная задачка