Треки
/
Elixir
Elixir
/
Вправи
/
Загадка про зебру
Загадка про зебру

Загадка про зебру

Складна

Вступ

Головоломка про зебру - це відома логічна головоломка, у якій є пʼять будинків, кожен пофарбований в інший колір. У будинках живуть різні мешканці: вони мають різні національності, тримають різних улюбленців, пʼють різні напої та мають різні захоплення.

Щоб допомогти розвʼязати головоломку, нам дають 15 тверджень, які описують розвʼязок. Однак лише поєднавши інформацію з усіх тверджень, ми зможемо знайти розвʼязок головоломки.

Note

Головоломка про зебру належить до задач задоволення обмежень (CSP). У такій задачі ми маємо набір можливих значень і набір обмежень, які визначають, які з цих значень припустимі. Ще одна відома задача задоволення обмежень - судоку.

Вказівки

Розвʼяжіть задачу про зебру та знайдіть відповіді на ці два запитання:

  • Хто з мешканців пʼє воду?
  • Хто тримає зебру?

Задача

Про всі наведені нижче 15 тверджень відомо, що вони правдиві:

  1. Є пʼять будинків.
  2. Англієць живе в червоному будинку.
  3. Іспанець тримає собаку.
  4. Мешканець зеленого будинку пʼє каву.
  5. Українець пʼє чай.
  6. Зелений будинок стоїть одразу праворуч від будинку кольору слонової кістки.
  7. Той, хто тримає равлика, любить ходити на танці.
  8. У жовтому будинку живе художник.
  9. Мешканець середнього будинку пʼє молоко.
  10. Норвежець живе в першому будинку.
  11. Той, хто любить читати, живе в будинку поруч із тим, у кого живе лисиця.
  12. Будинок художника стоїть поруч із будинком, де живе кінь.
  13. Той, хто грає у футбол, пʼє апельсиновий сік.
  14. Японець грає в шахи.
  15. Норвежець живе поруч із синім будинком.

Крім того, кожен із пʼяти будинків пофарбований в інший колір, а їхні мешканці різного національного походження, тримають різних тварин, пʼють різні напої та мають різні захоплення.

Note

Існує 24 мільярди (5!⁵ = 24,883,200,000) можливих розвʼязків, тож спробуйте відкинути якомога більше з них.


Джерело

WikipediaПосилання відкривається в новому вікні або вкладці
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Elixir Exercism

Час розпочати Загадка про зебру?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Elixir, а також 58 концепцій168 вправ та справжнє наставництво від людей, і все це безкоштовно.

Глибоке занурення у Загадка про зебру!

Розгляньмо 8 різних способів знайти розвʼязок Загадки про зебру серед 24 мільярдів можливих варіантів, зокрема ігнорування неправильних перестановок якомога раніше, алгоритм AC-3, дуже стислий розвʼязок на основі логіки і навіть генетичний алгоритм!