zhilyaev / solver-logical-problem-via-prolog

Решение логических задач на PROLOG

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Solver logical problem via prolog

Решение логических задач на PROLOG

Задача

Библиотека о которой пойдет речь, не столь уж велика: просто Пиште вздумалось навести порядок в своих книках. Так и есть! Пяти книг не хватает: томика Жюля Верна, романа Чарльза Диккенса, сборника рассказов Жигмунда Морица, поэмы-трилогии Яноша Араня "Тольди" и сборника стихов Аттилы Йожефа.
Пишта смутно помнил, что кому-то давал эти книги.
Но кому? После многократных попыток Пиште удалось вспомнить следующее:

  1. К нему в комнату заходили только Андрей, Фери, Илон, Катя и Шаньи, другому никому он книг не давал
  2. Он всегда строго придерживался правила: одна книга в одни руки.
  3. Фери как-то раз брал у него Диккенса, но давно возвратил. так что вторично взять эту книгу Фери не мог.
  4. У Андрея 2 литературные "привязанности": Стихи Аттилы Йожефа и романы Ж.ля Верна (книги других авторов Андрей взять не мог!)
  5. Катя отдает предпочтение литературе ХХ века
  6. Илон читака произведения только венгерских авторов
  7. Шаньи - незименный почитать поэзии. (всей остальной летаратуры для него не существует!) Все ли правильно вспомнил Пишта?

Игра и логика. 85 логических задач. Издательство "Мир". 1975 год.

Цель работы

Нужно написать программу решающую эту логическую задачу.

Run

  1. Install swi prolog
  2. Run main.pl
    - ? answer(X1,Y1, X2,Y2, X3,Y3, X4,Y4, X5,Y5) . 
    - false

Программа вернула false что свидетельствует о том, что задача противоречива: не все данные задачи согласуются между собой. Следовательно -> Пишта в своих воспоминаниях кое-что напутал.

Пояснение

Сделаем сводную таблицу, если любая строка или столбец будет весь заполнен, то задача не имеет решения.

_ Верн Диккенс Мориц Янош Атилла
Андрей 🔒 🔒 🔒
Фери 🔒
Илон 🔒 🔒
Катя 🔒 🔒 🔒
Шаньи 🔒 🔒 🔒

Вывод

В рассматриваемом случае задача не имеет решения потому, что никто из 5 ребят не мог взять томик Диккенса.

About

Решение логических задач на PROLOG

License:MIT License


Languages

Language:Prolog 100.0%