Наш найкращий друг готується до весілля і попросив нас стати організатором цього весілля. Ми погодилися, хоч усе, що ми знаємо про весілля, взято з фільму... Спочатку все йшло гладко, аж поки ми не взялися за розсаджування гостей за столом.
Прийдуть пʼять гостей, які будуть сидіти за одним великим круглим столом. Ось список гостей:
Наша мета - знайти таке розсаджування, за якого всі будуть задоволені своїми сусідами. Ми знаємо не всіх так добре, як хотілося б, але ось що нам відомо:
Тих, хто симпатизує одне одному, можна посадити поруч, але лише тоді, коли це почуття взаємне. Балакучі люди легко сходяться з іншими, тож їх можна посадити поруч із будь-ким.
Тепер, коли ми маємо ці подробиці, настав час накидати план розсаджування!
Наше завдання - знайти ідеальну розсадку за столом. Зробимо це, визначаючи факти (те, що завжди правдиве) і правила (те, що правдиве за певних умов).
Визначте факт chatty, який позначає балакучих людей.
Факт chatty приймає один аргумент: імʼя балакучої людини, записане малими літерами.
chatty(gustavo).
true.
Визначте факт likes, який позначає, хто кому подобається.
Факт likes приймає два аргументи:
likes(esteban, malena).
true.
Визначте правило pairing так, щоб воно було правдивим, коли двоє людей подобаються одне одному.
Правило pairing приймає два аргументи:
pairing(malena, esteban).
true.
Визначте правило pairing так, щоб воно було правдивим, коли (принаймні) одна з двох людей у парі балакуча.
pairing(valeria, jaime).
true.
Визначте правило seating так, щоб воно було правдивим, коли всі пʼять пар утворюють хороші пари.
Правило pairing приймає пʼять аргументів:
Скористайтеся щойно визначеними фактами і правилами, щоб перевірити розсадку.
seating(esteban, jaime, gustavo, malena, valeria).
false.