docgid.ru

Кто разводит рыбок? Или решение загадки Эйнштейна регулярным языком. Загадка Эйнштейна: Кто выращивает рыбок? 5 человек разных национальностей живут в 5 домах разного цвета

Многие сталкивались с головоломкой про пять разноцветных домов, в каждом из которых живет человек со своими любимыми животным, напитком и сигаретами. Эта загадка приписывается Эйнштейну, хотя прямых подтверждений этому нет. Полный текст этой головоломки есть на википедии .

Ее можно решить на бумаге или в уме, последовательно исключая неподходящие варианты. Однако, ее также можно решить более технично. Один из способов - написать программку на прологе. Но здесь я хочу ее решить используя более простые механизмы - регулярные выражения. А именно, перевести условия загадки на язык регекспов и свести задачу к поиску подходящей строки во всем допустимом наборе строк. Кстати, этот набор строк показан на рисунке.

Идея

Сама идея не моя, услышал ее в одной видеолекции. Однако, там ее решали слишком уж изощренно. Я попытался решить ее более просто и прямолинейно.

Для удобства приведу здесь текст загадки:

  1. Норвежец живёт в первом доме.
  2. Англичанин живёт в красном доме.
  3. Зелёный дом находится слева от белого, рядом с ним.
  4. Датчанин пьёт чай
  5. Тот, кто курит Marlboro, живёт рядом с тем, кто выращивает кошек.
  6. Тот, кто живёт в жёлтом доме, курит Dunhill.
  7. Немец курит Rothmans.
  8. Тот, кто живёт в центре, пьёт молоко.
  9. Сосед того, кто курит Marlboro, пьёт воду.
  10. Тот, кто курит Pall Mall, выращивает птиц.
  11. Швед выращивает собак.
  12. Норвежец живёт рядом с синим домом.
  13. Тот, кто выращивает лошадей, живёт в синем доме.
  14. Тот, кто курит Winfield, пьет пиво.
  15. В зелёном доме пьют кофе.
Вопрос: кто разводит рыбок?

Чтобы решить задачу нужно найти такую последовательность домов, цветов, национальностей, напитков и сигарет, чтобы они удовлетворяли правилам выше

И так, что и где мы будем искать. Для начала нужно каким-то образом формализовать правила. У нас пять домов, цветов, национальностей, напитков, животных и сигарет. Произвольный вариант дома с «жильцами» может выглядеть так:

German white cat beer malboro

Но этого недостаточно, так как у нас есть правила, которые учитывают взаимное расположение домов и предметов в них (к примеру, правила: 1, 3, 5...). Учтем это, расположив в строке пять домов последовательно:

German white cat beer malboro englishman red dog water pallmall norwegian green fish milk winfield dane blue bird tea dunhill swede horse yellow coffee rothmans

Строка выше - один из вариантов расположения предметов. В данном случае, неверный. Если же мы составим все возможные варианты, и поместим это в один текст, получится следующее:

N c a d s n c a d s n c a d s n c a d s n c a d s n c a d s n c a d s n c a d s n c a d s n c a d s n c a d s n c a d s n c a d s n c a d s n c a d s ...

Где n - nation, c - color, a - animal, d - drink, s - cigarettes. И каждая из этих букв может принимать одно из пяти своих значений.

Замечательно. То, что остается сделать - перевести правила на язык регулярных выражений:

  1. ^norwegian \w+
  2. \w+ englishman red \w+
  3. \w+ dane \w \w tea \w+
И если строка подойдет ко всем правилам, то мы нашли решение! Останется только посмотреть национальность в доме с рыбой. Это и является главной идеей поиска: построить текст и пройтись по нему регулярными выражениями.

Но есть плохая новость. Текст, по которому будет проходить поиск может быть ОЧЕНЬ большим. Если точнее, он будет размером (5!)^5 строк (~24 миллиардов). Его не то чтобы проверить, его будет сложно даже сгенерировать. Но есть и хорошая новость. Мы можем не генерировать весь этот текст, а воспользоваться операцией пересечения регулярных выражений. То есть найдем все общие строки регулярного выражения * (все возможные строки), с теми строками, которые дают регулярные выражения правил задачи . Та строка (а может и строки) что останется после пересечения и будет решением задачи.

К сожалению я не знаю движков, способных пересекать регулярные выражения. По этому придется использовать напрямую конечные автоматы, лежащие в основе любого регекспа.

Реализация

Конечные автоматы буду строить с помощью библиотечки openfst . Она дает все что мне необходимо для построения автоматов, плюс удобный способ работы из шелла. Чтобы сделать программирование еще более «ненормальным», я вообще не буду программировать:). За исключением простых bash-скриптов кода не будет.

Шаг 1 - Строим базовые автоматы

Создадим текстовый файл со списком всех объектов. Это будет наш алфавит.
norwegian englishman dane german swede white red ...

Построим базовые автоматы, каждый из которых допускает только одно слово из алфавита.
j=1 for i in `cat alph`; do echo -e "0 1 $j\n1" | fstcompile --acceptor > $i ((j=$j+1)) done

Fstcompile - команда пакета openfst, компилирующая текстовое представление автомата в бинарное. Это нужно для того, чтобы потом применять к этому автомату различные операции.

И так, у нас появился список файлов-автоматов. Они очень тривиальны. К примеру, автомат beer будет выглядить так:

Он эквивалентен регулярному выражению «beer». Пока все довольно просто. Кроме того нам понадобятся еще два базовых автомата - пустое множество, и любая строка, т.е. звездочка *. Строим.

Шаг 2 - Строим пустой автомат и звездочку

Пустая строка, автомат "empty":
echo "0" | fstcompile --acceptor > empty

Звездочка, автомат "star":
cp empty star for i in `cat alph`; do fstunion star $i star done fstclosure star star
Последний делается простым объединением базовых автоматов и замыканием. В регулярных выражениях это всего лишь (englishman|dane|...|cat|dog|...)*. Этот автомат будет таким:

Шаг 3 - Строим дома

Правила будет удобней описывать, если создать более комплексные автоматы, такие как национальность, цвет и т.д. Опять, использую несложный скрипт:

C="./concat.sh" $c norwegian star > r1 $c star englishman red star > r2 $c star animal drink cigarette nation star > r3 $c star dane color animal tea star > r4 $c star malboro nation color cat star > r5_0 $c star cat drink cigarette nation color animal drink malboro star > r5_1 $c star yellow animal drink dunhill star > r6 $c star german color animal drink rothmans > r7 $c house house nation color animal milk cigarette house house > r8 $c star malboro nation color animal water star > r9_0 $c star water cigarette nation color animal drink malboro star > r9_1 $c star bird drink pallmall star > r10 $c star swede color dog star > r11 $c star norwegian color animal drink cigarette nation blue star > r12_0 $c star blue animal drink cigarette norwegian star > r12_1 $c star blue horse star > r13 $c star beer winfield star > r14 $c star green animal coffee star > r15 fstunion r5_0 r5_1 > r5 fstunion r9_0 r9_1 > r9 fstunion r12_0 r12_1 > r12

Правила 5, 9 и 12 являются составными. Я определяю каждую часть отдельно, а потом делаю объединение. Скрипт concat.sh всего лишь делает конкатинацию автоматов, переданных в аргументах:
cp empty _c for i in $*; do fstconcat _c $i _c done; cat _c; rm _c;

Итак, на выходе получим автоматы r1,r2...,r15. Все готово для финального шага.

Шаг последний - Пересечение

./intersect.sh r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 > result

Где intersect.sh - пересечение автоматов в аргументах.
cp cl _c for i in $*; do fstintersect _c $i _c done; cat _c; rm _c;

На этом можно было бы и закончить - посмотреть автомат и узнать у кого рыба. Но я с самого начала не учел одну вещь - в моих правилах каждое из слов может повторятся. К примеру, два человека могут пить одно пиво и заводить одно животное. Это неверно по условиям задачи. Создавать такой фильтр крайне неудобно, используя регулярные языки, т.к. у нас нет способа «запомнить», что такое слово уже было. Но ограничить как-то нужно. По этому подвергаем финальный результат следующему скрипту.

I="./intersect.sh" d="fstdifference" for i in `cat alph`; do fstdifference cl $i > differ fstconcat differ $i | fstconcat - differ | fstrmepsilon - | fstdeterminize - | fstminimize - > ${i}_cont done cp result out for i in `ls *_cont`; do echo $i fstintersect $i out | fstrmepsilon - | fstdeterminize - | fstminimize - out done rm differ rm *_cont

Этот скрипт формирует специальный авотомат для каждого слова из алфавита, и применяет его к результату. Таким образом, отметаются пути с повторяющимися словами. В итоге, финальный результат (а по сути, автомат "out") выглядит так:

Это частичное изображение автомата (все не влезло). Каждые пять слов определяют дом. Как видно из рисунка, немец разводит рыбок.

Заключение

Вот такой вот необычный способ решения задачи. Но кроме всего прочего он показывает, что регулярные языки - это довольно мощная штука. Более того, если верить Ульману, любую математическую проблему можно представить как нахождения строки в определенном языке . Что и было показано.

Ps и да, мьсе действительно знает толк в извращениях:)



Загадка Эйнштейна — это известная логическая задача-пазл, авторство которой приписывают Альберту Эйнштейну (как вариант Льюису Кэрролу), якобы задача создана Альбертом Эйнштейном в годы его детства и использовалась им же для проверки кандидатов в ассистенты на способность к логическому мышлению.
При этом говорят, что Эйнштейн утверждал, будто только два процента населения Земли способны в уме решать подобные, связанные сразу с пятью признаками, задачи.
Речь идет именно про решение в уме, потому как на бумаге всё значительно упрощается. Мне нравится одно из первых появлений на людях этой задачи: в журнале «Life International» в номере от 17 декабря 1962 года, потому как в ней активно участвует украинец:). В загадке разыскивался собственник зебры.


25 марта 1963 года было опубликовано решение и большой список правильно решивших.

В интернете получил распространение приведенный ниже вариант с определением собственника рыбок. Привожу данный вариант в силу любви к рыбкам:). Логическая структура та же, переименованы признаки.

ЗАДАЧА.
На одной улице подряд стоят пять домов, каждый — своего цвета. В каждом живёт человек, все пять — разных национальностей. Каждый человек предпочитает уникальную марку сигарет, напиток и домашнее животное. Кроме того:
(1) Норвежец живёт в первом доме.
(2) Англичанин живёт в красном доме.
(3) Зелёный дом находится слева от белого , рядом с ним.
(4) Датчанин пьёт чай .
(5) Тот, кто курит Marlboro , живёт рядом с тем, кто выращивает кошек .
(6) Тот, кто живёт в жёлтом доме, курит Dunhill .
(7) Немец курит Rothmans .
(8) Тот, кто живёт в центре , пьёт молоко .
(9) Сосед того, кто курит Marlboro , пьёт воду .
(10) Тот, кто курит Pall Mall , выращивает птиц .
(11) Швед выращивает собак .
(12) Норвежец живёт рядом с синим домом.
(13) Тот, кто выращивает лошадей , живёт в синем доме.
(14) Тот, кто курит Winfield , пьет пиво .
(15) В зелёном доме пьют кофе .

ВОПРОС:
Кто разводит рыбок?

ХОД РАЗМЫШЛЕНИЙ:

По условию, норвежец живёт в первом доме (1). Из (12) следует, что второй дом синий.
Какого цвета первый дом? Он не может быть ни зелёным, ни белым, ведь дома этих двух цветов должны располагаться рядом (3). Красным он тоже не может быть, потому что в красном доме живёт англичанин (2). Итак, первый дом жёлтый.
Следовательно, в первом доме курят «Dunhill» (6), а во втором доме держат лошадь (13).

Что пьёт норвежец (который живёт в первом, жёлтом доме и курит «Dunhill»)? Это не чай, поскольку чай пьёт датчанин (4). И не кофе, потому что кофе пьют в зелёном доме (15). И не молоко, которое пьют в третьем доме (8). И не пиво, потому что человек, который пьёт пиво, курит «Winfield» (14).
Соответственно, норвежец пьёт воду.

Из (9) следует, что человек, живущий во втором, синем доме, курит «Marlboro».
Какой национальности человек, живущий во втором, синем доме, предпочитающий «Marlboro» и держащий лошадь? Это не норвежец — он в первом доме (1). Не англичанин — он в красном доме (2). Не швед — у шведа есть собака (11). Не немец — он курит «Rothmans» (7).
Значит, во втором доме живёт датчанин и, как следует из (4), пьёт чай.

Зелёный дом не может быть третьим, поскольку в нём пьют кофе, а не молоко (15). Зелёный дом не может быть пятым, поскольку справа от него есть дом (3). Следовательно, зелёный дом — четвёртый. Значит, белый дом — пятый, а красный — третий, и в нём живёт англичанин (2). В зелёном доме пьют кофе, и для белого дома остаётся только пиво. Из (14) следует, что в белом доме курят «Winfield».

Где живёт немец, который курит «Rothmans» (7)? Он может жить только в четвёртом, зелёном доме. А значит, человек, который курит «Pall Mall» и разводит птиц, может жить только в третьем, красном доме — это англичанин.

Тогда шведу, у которого собака (11), остаётся пятый дом. По условию (5), кошка живёт в первом или в третьем доме, но в третьем доме — птицы, а значит, кошка в первом доме.

ОТВЕТ:
НЕМЕЦ СОДЕРЖИТ РЫБКУ.

Есть пять домов разного цвета: красный, зеленый, белый, желтый и синий. Каждый населен человеком разной национальности: немец, швед, датчанин, норвежец и англичанин. Каждый из них пьет один вид напитков, курит одну марку сигарет и держит одно домашнее животное. Каждый из них уникален в пределах группы (напиток, марка сигарет, животное не повторяется!).

Вопрос: кто держит рыбку, если:

1. Англичанин живет в красном доме;

2. Швед держит собаку;

3. Датчанин пьет чай;

4. Зеленый дом — налево от белого, и его жилец пьет кофе;

5. Курильщик « Camel» держит птичку;

6. Жилец дома, находящегося в середине, пьет молоко;

7. Жилец желтого дома курит « Dunhill»;

8. Норвежец живет в первом доме;

9. Курильщик « Marlboro» живет рядом с владельцем кота;

10. Владелец лошади живет рядом с курильщиком Dunhill»;

11. Курильщик « Kent» пьет пиво;

12. Дом Норвежца — рядом с синим домом;

13. Немец курит « Rothmans»;

14. Курильщик « Marlboro» живет рядом с тем, кто пьет воду.

Ответ

Показать правильный ответ Первый дом: норвежец, желтый дом, « Dunhill» , кошка, вода;
Второй дом: датчанин, голубой дом, « Marlboro» , лошадь, чай;
Третий дом: англичанин, красный дом, « Camel» , птица, молоко;
Четвертый дом: немец, зеленый дом, « Rothmans» , рыба, кофе;
Пятый дом: швед, белый дом, « Kent» , собака, пиво;
Рыбку держит немец.

В данной статье представлены сразу две загадки великого Эйнштейна (с подсказками и ОТВЕТАМИ). Если не получиться справиться с одной - попробуйте другую!

Вот уже не одно десятилетие самые крепкие умы человечества (а также тех – кто претендует на звание просто умных людей) бросают вызов этим непростым загадкам. И не случайно. Каждому хочется «обставить» их создателя!

Имя известного американского ученого Альберта Эйнштейна известно и взрослым, и многим детям. Наверняка вам приходилось слышать "умный как Эйнштейн"? Этот ученый, сделавший открытия в науке и написавший огромное количество статей в разных научных областях, известен на весь мир. Вот только не все знают, что учился маленький Альберт совсем не лучше всех в классе, зато удивлял учителей необычностью мышления.

Будучи человеком нестандартных умственных способностей, однажды учёный придумал интересную логическую задачу. Она была составлена в те времена, когда еще никто в мире не знал, кто такой Альберт Эйнштейн? Головоломка получила название загадки Эйнштейна.

Из истории возникновения

Ученые спорят о том, действительно ли сам Эйнштейн придумал загадку, и в каком возрасте это произошло. Одни уверены, что это дело рук маленького Альберта. Другие говорят, что это был специальный тест для подбора помощника к себе в команду. Кандидат должен был с легкостью решать разные головоломки. Кто-то утверждает, что подобное мог изобрести английский писатель Люьис Кэрролл, автор приключений в стране чудес и в зазеркалье знаменитой Алисы и любитель гимнастики для ума. Правда, марка сигарет, о которой говорится в задаче, еще не выпускалась в годы жизни Кэрролла или в детские годы ученого.

Эйнштейн о своей загадки

Автор признавался, что только 2% людей могут справиться с задачей, в которой приходится удерживать внимание одновременно на пяти различных объектах, анализировать информацию и делать выводы. Важным условием теста является устное решение загадки. Если же все записывать, правильный ответ найти несложно. Только в этом случае не придется говорить о математических способностях.

Загадка Эйнштейна как она есть впервые увидела свет на страницах декабрьского номера за 1962 год английского журнала «Life International». Ответ любознательный читатель смог узнать из мартовского номера 1963 года.

Загадка Эйнштейна №1

  1. На одной улице стоят пять домов, различающихся по цвету.
  2. В красном доме поселился английский гражданин.
  3. В доме испанца живет собака.
  4. Житель зеленого дома любит кофе.
  5. Мужчина из Украины очень любит чай.
  6. Зеленый дом находится справа от белого.
  7. Сигареты «Old Gold» нравятся тому, кто промышляет разведением улиток.
  8. В желтом доме принято курить сигареты «Kool».
  9. В дом, находящийся в самом центре, всегда привозят молоко.
  10. Приезжий из Норвегии проживает в доме №1.
  11. Рядом с соседом, курящим «Chesterfield», живет тот, кто ухаживает за лисой.
  12. Рядом с тем домом, где есть лошадь, находится любитель сигарет «Kool».
  13. Покупающий регулярно «Lucky Strike», часто пьет апельсиновый сок.
  14. Японский обитатель квартала предпочитает курить «Parliament».
  15. Дом норвежца находится рядом с синим.

Требуется узнать: кто любит воду, а кто ухаживает за зеброй?

Итак, общая картина задачи такова, что в разноцветных зданиях живут обитатели – представители разных народов, держащие животных разных видов. Каждый из них курит свои любимые сигареты и пьет только свой любимый напиток. Стоит учитывать, что когда речь идет о местоположении дома справа, его рассматривают справа от читающего. Находятся ли постройки в ряд и что еще можно сказать о том, кто пьет воду и держит зебру?

Шаги решения

Размышляя над общей информацией и отмечая для себя отдельные важные детали, необходимо собрать все важное о каждом из жильцов, отбрасывая неподходящие варианты. Внимание! Постарайтесь решить загадку Эйнштейна сами без помощи подсказок. Только тогда, когда у вас действительно начнут опускаться руки - имеет смысл понемногу начать чаитать НАБЛЮДЕНИЯ и ПОДСКАЗКИ

Для простоты обращения с фактами присвоим им цифры, под которыми они находятся в условии.

Наблюдение 1: Пункт 10 гласит о том, что дом норвежца стоит под номером 1. В каком направлении идет нумерация зданий, роли не играет, важен только сам ее порядок.

Наблюдение 2: Пункты 10 и 15 дают понять, что синий дом находится под номером 2.

Наблюдение 3: Дом №1 не белый и не зеленый. Дома этих цветов должны располагаться рядом, учитывая п.6.

Наблюдение 4: Дом №1 не может быть красным, ведь в красном поселился англичанин.

Вывод 1: Дом №1 выкрашен в желтый цвет.

Вывод 2: Его обитатель любит сигареты «Kool» (8).

Вывод 3: Владелец дома №2 держит лошадь (12).

Вывод 4: Норвежец, проживающий в желтом доме, курит «Kool», не любит чай (5), не любит кофе (6), не покупает молоко (9) и равнодушен к апельсиновому соку (13). Это значит, что именно он и есть тот, кто предпочтет воду остальным напиткам.

Наблюдение 5: Что курит владелец лошади из синего дома №2? Это точно не сигареты «Kool», которые любят в доме №1.

Наблюдение 6: «Old Gold» – сигареты для хозяина улиток (7).

Наблюдение 7: Если бы обитатель синего дома курил «Lucky Strike», он бы и пил апельсиновый сок (13). Этот человек не может быть ни англичанином (2), ни норвежцем (10), ни испанцем(3), ни украинцем (5) и ни японцем (14). Такая ситуация не верна. Выходит, что это точно не «Lucky Strike».

Наблюдение 8: Если бы в синем доме №2 курили сигареты «Parliament», можно было бы утверждать, что там проживает японец (14). Следовательно, этот человек не терпит ни чая (5), ни кофе (6), ни молока (9), ни сока из апельсинов (13). Эта версия не отвечает действительности, то есть вариант с сигаретами «Parliament» не подходит.

Вывод 5: «Chesterfield» – выбор жителя синего дома №2.

Наблюдение 9: Какова национальность хозяина лошади из синего дома, предпочитающего «Chesterfield»? Исходя из условий головоломки, это не англичанин (2), не норвежец (10), не испанец (3) или японец (14).

Вывод 6: Житель синего дома №2, покупающий «Chesterfield», пьет чай (5) и является выходцем из Украины.

Наблюдение 10: Принимая во внимание тот факт, что «Chesterfield» покупает житель синего дома, п.11 будет подсказкой к местонахождению лисы: это дом №1 или дом №3.

Наблюдение 11: Предположим, лису держит владелец дома №3. Что должен пить при этом тот, кто занимается улитками и покупает «Old Gold»? Мы уже знаем, что украинец предпочтет чай, а норвежец – воду. Повелителю улиток сок не подходит (13), молоко – тоже(9).

Наблюдение 13: В доме зеленого цвета проживает кофеман (4), любитель покурить «Old Gold» и ухаживать за улитками.

Наблюдение 13: Если лису держат в доме №3, то в зеленом доме мы не увидим англичанина (2), испанца (3), украинца (5), японца (14) или норвежца (10). В нем должен жить любитель покурить «Old Gold» и ухаживать за улитками. Это исключено.

Вывод 7: Лиса находится в доме №1

Наблюдение 14: Становится понятно, что кофе и апельсиновый сок любят в домах №4 и №5. Любитель «Old Gold», ухаживающий за улитками, не может жить там, где пьют сок. «Lucky Strike» – сигареты пьющего сок из апельсинов (13). Выходит, что улиточник, курящий «Old Gold» и попивающий кофе, выбрал дом зеленого цвета для проживания (4), а это неправда.

Вывод 8: Тот, кто проживает с улитками под одной крышей и любит сигареты «Old Gold» – житель дома №3.

Принимая во внимание установленные факты, вычисляем, что:

Наблюдение 15: В зеленом доме живет кофеман, покупающий «Parliament», а это никто иной, как японец (14).

Наблюдение 16: Парень с собакой и сигаретой «Lucky Strike» обожает апельсиновый сок, ведь его родина – Испания.

Наблюдение 17: Красный дом №3 выбран англичанином.

Наблюдение 18: Дом, в котором поселился испанец, выкрашен в белый цвет.

ОТВЕТ на ЗАГАДКУ ЭЙНШТЕЙНА: японец – владелец зебры.

Перед вами решение на загадку Эйнштейна. Оно сделано с учетом расположения дома №1 с левого края. Даже если предположить, что дом находится с правого края, ответ останется все тем же. Вооружившись ручкой и блокнотом, найти решение к головоломке не так сложно. Другое дело – сделать попытку прийти к нему устно. Что, если попытать свои силы и проверить себя, попробовав пройти пути решения самому в уме?

А чтобы по настоящему испытать себя, можно воспользоваться вторым вариантом загадки Эйнштейна, причем - без всяких подсказок!

Загадка Эйнштейна №2

На улице в выстроенных в ряд домах разного цвета расселены люди из разных уголков мира. У каждого из них свои любимые сигареты, напитки и домашние питомцы.

  1. Господин из Норвегии занял дом №1.
  2. Владелец красного дома – приезжий из Англии.
  3. Около него располагается зеленое здание, слева от которого – белое.
  4. Чай – любимый напиток датчанина.
  5. Тот, кто ухаживает за кошками, проживает с курящим «Marlboro» по соседству.
  6. Жилец желтого дома покупает сигареты «Dunhill».
  7. «Rothmans» - любимые сигареты немца.
  8. В расположенном в самом центре здании пьют молоко.
  9. Рядом с курящим «Marlboro» проживает любитель пить воду.
  10. Предпочитающий «Pall Mall» держит у себя птиц.
  11. Собаки – любимые питомцы господина из Швеции.
  12. Рядом с домом норвежца стоит синий дом.
  13. В синем доме обитает любитель лошадей.
  14. Тот, кто часто покупает сигареты «Winfield», не обходится и без пива.
  15. Обитатель зеленого дома – кофеман.

Требуется узнать: кто любит и держит у себя дома рыбок?

Найдется ли умник, способный дать ответ, произведя решение в уме, и которого сам Эйнштейн взял бы к себе в помощники?

Решение задачи:

Итак, у нас есть 25 позиций, которые необходимо заполнить следующими данными:

Национальность: Норвежец, Англичанин, Датчанин, Немец, Швед.
Цвет дома: Красный, Зелёный, Белый, Жёлтый, Синий.
Марка сигарет: Ротманс, Данхилл, Мальборо, Пелл Мелл, Филипп Моррис.
Животное: Кошки, Птицы, Собаки, Лошади, Рыбки.
Напиток: Чай, Молоко, Вода, Пиво, Кофе.

По сути, нам надо заполнить вот такую табличку:

Номер дома 1 2 3 4 5
Национальность
Цвет дома
Сигареты
Животное
Напиток

Из подсказок сразу же заполняем ряд ячеек таблицы:

Норвежец живет в первом доме.
Норвежец живет рядом с синим домом.
Тот, кто выращивает лошадей, живет в синем доме.
Тот, кто живет в центре, пьет молоко.
Номер дома 1 2 3 4 5
Национальность Норвежец
Цвет дома Синий
Сигареты
Животное Лошади
Напиток Молоко

Раз англичанин живёт в красном доме, значит, норвежец в красном жить не может. Равно норвежец не может жить в синем. Не может он жить и в белом, так как зелёный дом находится левее белового, а дом норвежца - самый левый. В зелёном он тоже жить не может, так как справа от зелёного белый дом, а справа от норвежца - синий. Значит, он живёт в жёлтом. Отсюда же делаем и вывод, что норвежец курит Данхилл.

Номер дома 1 2 3 4 5
Национальность Норвежец
Цвет дома Жёлтый Синий
Сигареты Данхилл
Животное Лошади
Напиток Молоко

Далее, раз зелёный дом находится левее белого, значит, у него номер либо 3, либо 4. Однако в третьем, среднем, доме пьют молоко, а в зелёном доме пьют кофе - значит номер зелёного дома = 4. Значит, белый дом у нас идёт под номером 5, а красный - под номером 3. Здесь же живёт англичанин. Кофе пьют в 4 доме.

Номер дома 1 2 3 4 5
Национальность Норвежец Англичанин

Сигареты Данхилл
Животное Лошади
Напиток Молоко Кофе

Далее, раз немец курит Мальборо, то он не курит Филипп Моррис, и потому не пьёт пиво. Не пьёт он и молоко, которое пьёт англичанин. Не пьёт и чай - это делает датчанин. Значит, немец пьёт либо воду, либо кофе. Норвежец не может пить пиво (он курит другие сигареты), молоко (не англичанин), кофе (живёт не в зелёном доме), чай (не датчанин). Значит норвежец пьёт воду, а потом немец пьёт кофе, и живёт в зелёном доме. Плюс не забываем, что немец курит Мальборо. И раз воду у нас пьёт норвежец, то его сосед (второй дом) курит Ротманс.

Номер дома 1 2 3 4 5
Национальность Норвежец Англичанин Немец
Цвет дома Жёлтый Синий Красный Зелёный Белый
Животное Лошади
Напиток Вода Молоко Кофе

Раз швед у нас выращивает собак, то он не может жить во втором доме (там выращивают лошадей), значит он живёт в пятом доме (белом). Значит во втором доме живёт датчанин, который пьёт чай.

Номер дома 1 2 3 4 5

Цвет дома Жёлтый Синий Красный Зелёный Белый
Сигареты Данхилл Ротманс Мальборо
Животное Лошади Собаки
Напиток Вода Чай Молоко Кофе

Раз курильщик Пелл Мелл выращивает птиц, то это не швед, а значит - англичанин. Следовательно, швед курит Филипп Моррис и пьёт пиво.

Номер дома 1 2 3 4 5
Национальность Норвежец Датчанин Англичанин Немец Швед
Цвет дома Жёлтый Синий Красный Зелёный Белый

Животное Лошади Птицы Собаки

И теперь у нас осталась последняя подсказка:

Тот, кто курит Rothmans, живет рядом с тем, кто выращивает кошек.
Ротманс курит датчанин, что живёт во втором доме. Справа от него живёт англичанин, который выращивает птиц, значит, второй сосед датчанина (слева), норвежец, этих кошек и выращивает. А потом рыбок выращивает немец. Ответ найден.

Номер дома 1 2 3 4 5
Национальность Норвежец Датчанин Англичанин Немец Швед
Цвет дома Жёлтый Синий Красный Зелёный Белый
Сигареты Данхилл Ротманс Пелл Мелл Мальборо Филипп Моррис
Животное Кошки Лошади Птицы Рыбки Собаки
Напиток Вода Чай Молоко Кофе Пиво

ОТВЕТ: рыбок выращивает немец!

Загрузка...