Логическая задача в Prologus
Формулировка задачи:
Кухарка кормит Чеширского Кота. Кухарка считает, что по крайней мере один из них не в своём уме. Что можно сказать о состоянии их рассудка?
Должно оказаться, что Кот не в своём уме.
Есть такой пример:
Король Пик думает, что Королева Пик думает, что Король не в своём уме. Что можно сказать о состоянии рассудка Короля и Королевы?
участник(в_своем_уме).
участник(не_в_своем_уме).
думает(_x,_y):-(_x=в_своем_уме,ВЫП(_y)).
думает(_x,_y):-(_x=не_в_своем_уме,НЕ(ВЫП(_y))).
пример(_Король,_Королева):-
участник(_Король),
участник(_Королева),
думает(_Король,думает(_Королева,_Король=не_в_своем_уме)).
Дополнительное в скриншотах.
Версия специфическая - Prologus - Боголюбов Д.П. (МИЭМ)
Решение задачи: «Логическая задача в Prologus»
textual
Листинг программы
участник(в_своем_уме). участник(не_в_своем_уме). думает_что(_x,_y):-(_x=в_своем_уме,ВЫП(_y)). думает_что(_x,_y):-(_x=не_в_своем_уме,НЕ(ВЫП(_y))). ?-ОПЕР(300, xfy, думает_что), ОПЕР(300, fx, участник). пример(_Кухарка,_Кот):- участник _Кухарка, участник _Кот, _Кухарка думает_что (_Кухарка = не_в_своем_уме; _Кот = не_в_своем_уме). ?-пример(_Кухарка,_Кот).
Объяснение кода листинга программы
- Переменные: в_своем_уме, не_в_своем_уме, xfy, думает_что, участник, fx, пример, Кухарка, Кот.
- Участник Кухарка и участник Кот.
- Условие для думает_что: если участник равен
в_своем_уме
, то ВЫП (неизвестно, что это за операция). - Условие для думает_что: если участник равен
не_в_своем_уме
, то НЕ (предполагаю, что это отрицание). - ОПЕР(300, xfy, думает_что) и ОПЕР(300, fx, участник).
- Пример: если Кухарка и Кот участники, то Кухарка думает_что (Кухарка =
не_в_своем_уме
и Кот =не_в_своем_уме
). - Вопрос: ?-ОПЕР(300, xfy, думает_что), ОПЕР(300, fx, участник).
- Вопрос: ?-пример(_Кухарка,_Кот).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д