Задача про полицейских - 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.

Объяснение кода листинга программы

  1. В коде представлено предположение о задаче, связанной с полицейскими и убийцей.
  2. Убийца обозначается переменной Killer, а его имя - alain.
  3. Вторая переменная - jean, вероятно, связана с жертвой или жертвами убийцы.
  4. Третья переменная - tuesday, возможно, указывает на день недели, когда произошло убийство.
  5. Код предполагает, что убийца носит имя alain, жертва - jean, а убийство произошло во вторник.
  6. Однако, проверка false указывает на то, что данная комбинация переменных не является верной.
  7. Возможно, это означает, что alain не является убийцей jean во вторник.
  8. Или же, это может указывать на отсутствие связи между переменными Killer, jean и tuesday в данном контексте.

Оцени полезность:

6   голосов , оценка 3.5 из 5