Задача про полицейских - Prolog
Формулировка задачи:
Вот задача
Jean был убит во вторник. Luc, Paul, Alain, Bernard и Louis находятся под подозрением.
Известно что:
- убийцей является тот, кто желал смерти Jean-a, имеет оружие и не имеет алиби на вторник;
- алиби представленное персоной не внушающей доверия не является действительным;
- кто-то мог хотеть смерти Jean-a, если он был заинтересован в его смерти или желал ему отомстить;
- персона может быть заинтересована в смерти Jean-a, если она наследует его собственность, если должна ему денег или была замечена Jean-ом на месте преступления.
Анкета дала следующие результаты:
- У Luc-a есть алиби на вторник, которое предоставил Bernard;
- У Paul-a есть алиби на вторник, которое предоставил Bernard;
- У Louis-a есть алиби на вторник, которое предоставил Luc;
- У Alain -a есть алиби на четверг, которое предоставил Luc;
- Alain персона не внушающее доверие;
- Paul хотел отомстить Jean-у;
- Luc хотел отомстить Jean-у;
- Bernard является наследником Jean-a;
- Jean является наследником Louis -a;
- Louis должен денег Jean-у;
- Luc должен денег Jean-у;
- Jean видел Alain –a за совершением преступления;
- У Luc-а есть оружие;
- У Louis -а есть оружие;
- У Alain -а есть оружие.
Кто убийца?
Вот мой код
Почему он выводит 4 ответа,а не один и как это исправить?
Решение задачи: «Задача про полицейских»
textual
Листинг программы
?- killer(Killer, jean, tuesday). Killer = alain ; false.
Объяснение кода листинга программы
- В коде представлено предположение о задаче, связанной с полицейскими и убийцей.
- Убийца обозначается переменной
Killer
, а его имя -alain
. - Вторая переменная -
jean
, вероятно, связана с жертвой или жертвами убийцы. - Третья переменная -
tuesday
, возможно, указывает на день недели, когда произошло убийство. - Код предполагает, что убийца носит имя
alain
, жертва -jean
, а убийство произошло во вторник. - Однако, проверка
false
указывает на то, что данная комбинация переменных не является верной. - Возможно, это означает, что
alain
не является убийцейjean
во вторник. - Или же, это может указывать на отсутствие связи между переменными
Killer
,jean
иtuesday
в данном контексте.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д