Ейнштейн написав загадку. Він сказав, що 98% світу не можуть її вирішити.
Я вирішив цю загадку приблизно за 25 хвилин, перебуваючи в поїзді до роботи. Це в основному лише відрахування.
Загадка
Є 5 будинків у 5 різних кольорах поспіль.
У кожному будинку живе людина різної національності.
5 власників п'ють певний тип напою, курять певну марку сигар і тримають певного домашнього улюбленця.
Жоден власник не має того самого домашнього улюбленця, палить одну і ту ж марку сигар та не п’є той самий напій.
Питання: Кому належить риба?
Для вирішення цієї загадки Ейнштейн надає 15 підказок:
- Британка живе в червоному будинку.
- Швед утримує собак як домашніх тварин.
- Датчанин п’є чай.
- Зелений будинок знаходиться зліва від білого будинку.
- Господар зеленого будинку п’є каву.
- Господар, який курить Pall Mall, випиває птахів.
- Власник жовтого будинку курить Данхілла.
- Господар, що мешкає в будинку будинку, п’є молоко.
- Норвежець живе в першому будинку.
- Господар, який курить Бленди, живе поруч із тим, хто тримає котів.
- Господар, який утримує коня, живе поруч із тим, хто курить Данхілла.
- Господар, який курить Bluemasters, п’є пиво.
- Німець курить принца.
- Норвежець живе поруч із синім будинком.
- Господар, який курить суміші, живе поруч із тим, хто п’є воду.
За допомогою цих підказок можна прийти до рішення.
Ваше завдання: Складіть програму, яка вирішить цю загадку для вас. Жорстке кодування рішення не дозволено (так)
Підказки дозволяється жорстко кодувати в будь-якому форматі.
Приклад формату:
//Hints in order
(Nationality:Brit)==(Color:Red)
(Nationality:Swede)==(Pet:Dogs)
(Nationality:Dane)==(Drink: Tea)
(Color:Green)/(Color:White)
(Color:Green)==(Drink:Coffee)
(Smoke:PallMall)==(Pet:Birds)
(Color:Yellow)==(Smoke:Dunhill)
(House:3)==(Drink:Milk)
(Nationality:Norwegian)==(House:1)
(Smoke:Blend)/\(Pet:Cats)
== означає, що дорівнює
/ означає з лівої сторони
\ означає з правого боку
/ \ означає зліва або справа від
Як я вже сказав, дозволено або підказки жорсткого коду, або їх введення.
Вихід: результат повинен бути у такому форматі (з правильними значеннями, просто кажучи для тролів;))
_____________ _____________ _____________ _____________ _____________
| Number | | Number | | Number | | Number | | Number |
| Nationality | | Nationality | | Nationality | | Nationality | | Nationality |
| Color | | Color | | Color | | Color | | Color |
| Drink | | Drink | | Drink | | Drink | | Drink |
| Smoke | | Smoke | | Smoke | | Smoke | | Smoke |
| Pet | | Pet | | Pet | | Pet | | Pet |
--------------- --------------- --------------- --------------- ---------------
The <Nationality> in the <Color> house owns the fish!
Коробки мистецтва Ascii ви можете змінювати, якщо вони є коробками, не має значення, якими символами ви користуєтесь.
Будь-які знання з цієї загадки та рішення не можуть бути використані у програмі. Для вирішення загадки слід використовувати чисту логіку та дедукцію.
Позначає це як кодовий гольф, але це може бути проблемою з кодом, не впевнений. Будь-які думки щодо виграшних критеріїв для виклику коду, не соромтеся поділитися :)
На даний момент це код-гольф, тому програма з найнижчим числом рахунків виграє.
Удачі та щасливого кодування :)