Загадка эйнштейна про 5 домов кто выращивает рыбок

Задача Эйнштейна про 5 домов

Мышление – это один из важнейших познавательных процессов, без которого невозможно нормальное функционирование человеческого мозга. Существует несколько типов мышления. Одним из них является логическое мышление.

Логическим мышлением обладает каждый человек, однако у одних оно развито хорошо, а у других не слишком. Существует множество методик для развития логического мышления. Сюда относятся всевозможные задачи, в которых даются определенные логические связи, и человек, анализируя их, должен найти решение. Одной из известных логических задач является загадка Эйнштейна. Рассмотрим, что представляет собой эта задача и как ее решить.

Задача Эйнштейна про 5 домов

Что такое загадка Эйнштейна?

Считается, что эта загадка была придумана знаменитым физиком Альбертом Эйнштейном в период его детства. Бытует мнение, согласно которому Эйнштейн утверждал, что решить эту задачу в уме могут всего лишь 2% населения планеты. Остальные 98% людей неспособны проводить анализ нескольких логических закономерностей одновременно, не пользуясь при этом бумагой и карандашом. Правда, не имеется никаких письменных доказательств того, что знаменитый физик и вправду утверждал нечто подобное, но от этого задача Эйнштейна не становится менее интересной.

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

Читайте также:  Как выращивать помидоры в поликарбонатной теплице?

Как разгадать загадку Эйнштейна?

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

Условие задачи:

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

  • Американец проживает в первом доме.
  • Китаец – в доме красного цвета.
  • Коричневый дом располагается левее, чем серый.
  • Итальянец любит пить чай.
  • Человек, который предпочитает сигареты Camel, проживает по соседству с тем, кто разводит нутрий.
  • Человек, живущий в доме оранжевого цвета, курит сигареты Pres >

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

    1. Исходя из условия задачи, можно выделить следующие данные:

– Национальность

    1. : американец, китаец, итальянец, австриец, финн.

– Цветдома

    : красный, синий, коричневый, оранжевый, серый.

– Сигареты: Camel, Lucky Strike, President, Chesterfield, Parliament.

– Напитки: кефир, сок, кока-кола, виски, чай.

– Животные: нутрии, куры, коровы, зебры, рыбки.

Рисуем таблицу:Загадка эйнштейна про 5 домов кто выращивает рыбок

Вписываем в таблицу имеющиеся данные:- Американец проживает в первом доме.- Человек, который разводит зебр, проживает в синем доме.

 

 

 

– Американец проживает по соседству с домом синего цвета.

– Человек, живущий в центральном доме, пьет кефир.Загадка эйнштейна про 5 домов кто выращивает рыбок

 

 

 

 

 

Вычисляем, в каком доме живет американец. В красном он жить не может, потому, что там китаец. В синем он тоже не может жить, поскольку синий находится по соседству. Коричневый дом тоже не может ему принадлежать, поскольку справа от коричневого дома находится серый, а справа от американца – синий. Коричневый дом располагается слева от серого, а дом, в котором живет американец – самый левый, значит, в сером доме он жить не может. Таким образом, получается, что американец проживает в оранжевом доме и любит сигареты Pres />

Человек, предпочитающий сигареты Camel, проживает рядом с человеком, который разводит нутрий. Сигареты Camel предпочитает итальянец, проживающий в доме № 2. Китаец, занимающийся разведением кур, живет справа от него. Получается, что сосед итальянца слева разводит нутрий (это американец).

 

Теперь можно ответить на поставленный вопрос: кто выращивает рыбок? Ответ: рыбок выращивает австриец.

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

Задача Эйнштена про квадраты

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

Сколько квадратов вы видите на рисунке?

Задача Эйнштена про квадраты

Квадраты 1:1 – 16 шт.
Квадраты 2:2 – 9 шт.
Квадраты 3:3 – 4 шт.
Квадраты 4:4 – 1 шт.
Всего: 30 штук

Загадка про треугольники

Сколько треугольников вы видите?

Загадка про треугольники

Загадка Эйнштейна решение – кто выращивает рыбок? – ответ

Загадка Эйнштейна решение – кто выращивает рыбок? – ответ

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

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

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

Итак, освежили воспоминания посмотрев предыдущую запись, вспомнили условия, а теперь перейдем к непосредственному решению загадки Эйнштейна.

Загадка Эйнштейна решение и ответ.

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

Из 1 пункта условия ( (1) – далее ) Норвежец проживает в первом доме. Используя это и (12) – получаем, что второй дом синий.

Далее мы можем определить какого цвета первый дом (Норвежца) – из (3) ясно, что он не может быть ни белым, ни зеленым; так же он не может быть и красным (2). Следовательно первый дом – дом Норвежца – Желтый.

Из (6) в первом доме курят «Dunhill», а из (13) – во втором доме содержится лошадь.

Теперь определим, что пьет Норвежец (первый дом, желтого цвета, сигареты «Dunhill»). Из (4) – ясно что это не чай, из (15) – это не кофе, из (8) – это не молоко, из (14) – это не пиво; следовательно это вода,. Значит, Норвежец пьет воду!

А теперь все мысли оформим в табличку:

дом12345
цветжёлтыйсиний???
национальностьнорвежец????
напитоквода?молоко??
сигареты«Dunhill»????
животное?лошадь???

Из (9) понятно, что человек из 2го дома (синий) курит «Rothmans».

Определим теперь национальность человека из второго дома (синий дом, курит «Rothmans», содержит лошадь). Ясное дело это не Норвежец, из (2) – не англичанин, из (11) – не швед, из (7) – не немец. Значит во втором доме проживает Датчанин, который еще (4) и чай пьет!

дом12345
цветжёлтыйсиний???
национальностьнорвежецдатчанин???
напитокводачаймолоко??
сигареты«Dunhill»«Marlboro»???
животное?лошадь???

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

дом12345
цветжёлтыйсинийкрасныйзеленыйбелый
национальностьнорвежецдатчанинангличанин??
напитокводачаймолококофепиво
сигареты«Dunhill»«Marlboro»??«Winfield»
животное?лошадь???

Определим место жительства немца, который покуривает «Marlboro» (7). А жить он может только в 4 – зеленом доме. Следовательно курильщик «Pall Mall» разводит птиц и живет в третьем красном доме – это человек из Англии.

дом12345
цветжёлтыйсинийкрасныйзеленыйбелый
национальностьнорвежецдатчанинангличаниннемец?
напитокводачаймолококофепиво
сигареты«Dunhill»«Marlboro»«Pall Mall»«Rothmans»«Winfield»
животное?лошадьптицы??

Шведу остается только пятый дом. Из (11) – у шведа есть собака. Из (5) – кошка проживает в первом или третьем доме, но третий уже занят птицами, значит кошка все таки в первом доме.

дом12345
цветжёлтыйсинийкрасныйзеленыйбелый
национальностьнорвежецдатчанинангличаниннемецшвед
напитокводачаймолококофепиво
сигареты«Dunhill»«Rothmans»«Pall Mall»«Marlboro»«Winfield»
животноекошкалошадьптицы?собака

Как Вы видите остался только один знак вопроса в таблице… Да, да, да это животное, это рыбки. Теперь каждому понятно кто разводит рыбок? ведь все животные уже заняты.

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

Для любителей и фанатов сложнейших тестов представляем культовую и всемирно известную Загадку Эйнштейна. Эту загадку придумал действительно тот самый знаменитый Альберт Эйнштейн. Согласно данным мировой статистики, этот тест могут пройти лишь 2% людей. Что радует в России этот процент намного больше и составляет около 9%, все-таки сказывается качество нашего российского образования. Не забываем, что во многих развитых и развивающихся странах средний уровень образования очень низкий.

Итак, дерзните пройти этот интереснейший прикольный тест Загадка Эйнштейна и войти в эти элитные 2% в мире и 9% в России.

Если вы считаете данный материал интересным, сохраните его, пожалуйста, здесь

А теперь серьезно о загадке Эйнштейна, эту тест — головоломку Альберт Эйнштейн придумал в достаточно раннем возрасте, задолго до того как к нему пришла всемирная известность. Этот тест (Загадка Эйнштейна) использовался в качестве теста при собеседовании при приеме на работу или в научную бригаду Эйнштейна. Но самое интересное заключалось в другом, эту загадку Эйнштейна требовалось решить УСТНО, да-да соискатели на научную должность должны были решить тест загадка Эйнштейна устно! Отсюда и берется цифра в 2 %, все чуток не договаривают истории этой цифры, а на самом деле только 2% людей могут решить загадку Эйнштейна устно. Пользуясь запрограммированой таблицей задача решается гораздо проще и быстрее, в противном случае представьте как бы вы держали пять составляющих групп в уме.

На портале go2u.ru мы предлагаем Вам самые интересные прикольные тесты. Прикольные тесты можно разгадывать не обладая специальными математическими навыками, достаточно обычной житейской наблюдательности и общеобразовательных базовых знаний.

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

Прикольный тест №3 освежит в памяти самые популярные русские пословицы и поговороки. Прикольный тест №1 является самым популярным, так как он затрагивает цифры, которые нас окружают в повседневной жизни — этот тест могут разгадывать все. За разгадку любого прикольного теста Вас ждет подарок.Один прикольный тест рассчитан на один день. Разгадывайте в день по одному тесту.

Все прикольные тесты сопровождаются небольшим, но увлекательным виртуальным прикольным путешествием.

Все великие ученые любили составлять и разгадывать логические прикольные тесты- Пифагор, Ломоносов, Эйнштейн. Если учесть, что развитие научного знания представляет собой одну большую логическую задачу, над решением которой бьются миллионы ученых, то можно сделать вывод о том, что все занимаются разгадыванием логических тестов. Разгадывая прикольные тесты на мышление мы делаем первый и основной шаг к саморазвитию. К поиску хорошей работы, поступлению в престижный ВУЗ стоит относиться как к решению логической задачи, от которой зависит судьба каждого человека.

Для решения сложных логических задач, которые ставит перед нами современное общество необходимо тщательно готовиться. Прикольные тесты go2u.ru помогут Вам сделать первый шаг. Только на первый взгляд кажется, что тесты — это только развлечение. При более подробном рассмотрении прикольные тесты на мышление — это путь к саморазвитию, тренировке памяти и смекалки.

История возникновения прикольных тестов уходит далеко в глубь веков. Еще в древности люди пытались разобраться в своих личных проблемах, решая задачи с определенными заранее вариантами ответов.
И в наши дни, претерпев значительную трансформацию, прикольные тесты помогают нам понять особенности характера и уровень развития способностей, как своих личных, так и любого другого человека — подчиненного, ученика, друга.

Что такое прикольный тест?

Идея количественного определения уровня развития (Прикольные) детей с помощью системы прикольных тестов впервые была разработана русским психологом в (1903). Для каждого возрастного, исчисляемого в годах, периода уровень (норма) достигнутых знаний и умений полагался равным 100. Отклонения от этого стандарта позволяли судить об опережении или отставании в умственном развитии.

Система прикольных тестов на определение включает как задания, требующие словесного ответа на поставленные вопросы, так и задачи на манипулирование, например складывание целостной фигуры по данным её частям. Требуется решить — с ограничением времени — простые арифметические задачи и примеры, ответить на ряд вопросов, определить значения некоторых терминов и слов. Ответы оцениваются по определённой, заранее установленной шкале.

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

 

Загадка Эйнштейна: Кто выращивает рыбок?

Загадка Эйнштейна — известная логическая задача, авторство которой приписывается Альберту Эйнштейну.

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

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

В своей самой тяжёлой редакции задача предполагает решение в уме, без использования каких-либо записей или средств сохранения информации. Без этого головоломка заметно теряет в сложности, поскольку может быть решена простым составлением таблицы с исключением заведомо противоречивых вариантов — и следовательно мало что говорит о способностях испытуемого.»

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

Вопрос: кто выращивает рыбок?

Подсказки:

  • Норвежец живет в первом доме.
  • Англичанин живет в красном доме.
  • Зеленый дом находится левее белого.
  • Датчанин пьет чай.
  • Тот, кто курит Rothmans, живет рядом с тем, кто
  • выращивает кошек.
  • Тот, кто живет в желтом доме, курит Dunhill.
  • Немец курит Marlboro.
  • Тот, кто живет в центре, пьет молоко.
  • Сосед того, кто курит Rothmans, пьет воду.
  • Тот, кто курит Pall Mall, выращивает птиц.
  • Швед выращивает собак.
  • Норвежец живет рядом с синим домом.
  • Тот, кто выращивает лошадей, живет в синем доме.
  • Тот, кто курит Philip Morris, пьет пиво.
  • В зеленом доме пьют кофе.

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

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

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

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

Номер дома12345
Национальность
Цвет дома
Сигареты
Животное
Напиток

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

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

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

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

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

Номер дома12345
НациональностьНорвежецАнгличанин
Цвет домаЖёлтыйСинийКрасныйЗелёныйБелый
СигаретыДанхилл
ЖивотноеЛошади
НапитокМолокоКофе

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

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

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

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

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

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

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

  • Тот, кто курит Rothmans, живет рядом с тем, кто выращивает кошек.

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

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

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

Ответ на загадку Эйнштейна + ход решения. Все уже поняли, кто держит рыбку, здесь просто можете сравнить ход решения. Ниже приведён ход решения. Ключевые умозаключения выделены курсивом. По условию, норвежец живёт в первом доме (9). Из (9) и (14) следует, что второй дом синий. Какого цвета первый дом? Он не может быть ни зелёным, ни белым, поскольку дома́ этих двух цветов должны располагаться рядом (5). Красным он тоже не может быть, потому что в красном доме живёт англичанин (1). Итак, первый дом жёлтый. Следовательно, в первом доме курят «Данхел» (7), а во втором доме держат лошадь (11). Что пьёт норвежец (который живёт в первом, жёлтом, доме и курит «Данхел»)? Это не чай, поскольку чай пьёт датчанин (4). И не кофе, потому что кофе пьют в зелёном доме (3). И не молоко, которое пьют в третьем доме (8). И не пиво, потому что человек, который пьёт пиво, курит «Винфилд» (12). Следовательно, норвежец пьёт воду, и это ответ на первый вопрос загадки. Что курит человек, который живёт во втором, синем, доме и, как мы уже определили, держит лошадь? Это не «Данхел», потому что их курят в первом доме (7). И не «Пал Мал», поскольку тот, кто их курит, разводит птиц (6). Предположим, что во втором доме курят «Винфилд». Тогда из (12) следует, что здесь пьют пиво. В таком случае, кто живёт в этом доме? Это не норвежец — он живёт в первом доме (9). Не англичанин — его дом красный (1). Не швед, поскольку швед держит собаку (2). Не датчанин, потому что датчанин пьёт чай (4). Немец курит «Ротманс» (13). Итак, данная ситуация невозможна, и во втором доме курят не «Винфилд». Предположим, что во втором доме курят «Ротманс». Следовательно, здесь живёт немец (13). В таком случае, что он пьёт? Не чай, поскольку чай пьёт датчанин (4). Не кофе — кофе пьют в зелёном доме (3). Не молоко — молоко пьют в третьем доме (8). И не пиво, потому что пиво пьёт человек, который курит «Винфилд» (12). Итак, данная ситуация также невозможна, и во втором доме курят не «Ротманс».Следовательно, во втором доме курят «Мальборо». Это сразу видно из условия (15)Какой национальности человек, живущий во втором, синем, доме, предпочитающий «Мальборо» и держащий лошадь? Это не норвежец — он в первом доме (9). Не англичанин — он в красном доме (1). Не швед — у шведа собака (2). Не немец — немец курит «Ротманс» (13). Значит, во втором доме живёт датчанин и, как следует из (4), пьёт чай. Поскольку «Мальборо» курят во втором доме, из (10) следует, что кошку держат либо в первом, либо в третьем доме.Предположим, что кошка в третьем доме. В таком случае, что пьёт человек, который курит «Пал Мал» и разводит птиц (6)? Вода и чай исключаются (см. предыдущие шаги). Он также не может пить пиво, поскольку пиво пьёт человек, который курит «Винфилд» (12). Молоко тоже не подходит — его пьют в третьем доме (8), где, как мы предположили, держат кошку. Остаётся кофе, который, по условию, пьют в зелёном доме (3). Итак, если в третьем доме держат кошку, то в зелёном доме живёт человек, который пьёт кофе, курит «Пал Мал» и разводит птиц. Кто этот человек? Он не норвежец — норвежец в первом доме (9). Не датчанин — тот пьёт чай (4). Не англичанин — тот живёт в красном доме (1). Не немец — тот курит «Ротманс» (13). И не швед — у шведа собака (2). Итак, данная ситуация невозможна, а значит, кошку держат в первом доме, а не в третьем. Из всего вышеизложенного следует, что кофе и пиво пьют в четвёртом и пятом доме, но какой из напитков в каком доме — неизвестно. В данном случае номер не имеет значение; будем называть дом, где пьют пиво, «домом пива», а дом, где пьют кофе, — «домом кофе». По условию, дом кофе зелёный (3), а в доме пива курят «Винфилд» (12). Где живёт человек, который курит «Пал Мал» и разводит птиц?Предположим, что он живёт в доме кофе. Тогда из (3) следует, что человек, который курит «Пал Мал», разводит птиц и пьёт кофе, живёт в зелёном доме. Данная ситуация невозможна (см. Шаг 3). Следовательно, человек, который курит «Пал Мал» и разводит птиц, живёт в третьем доме. Отсюда следует, что «Ротманс» курят в зелёном доме кофе, а живёт там немец (13). Тогда швед, у которого собака (2), живёт в доме пива и курит «Винфилд». Значит, англичанин живёт в третьем доме, и дом этот — красный (1). В этом случае дом шведа белый.По условию (5), зелёный дом расположен слева от белого. Следовательно, зелёный дом имеет номер 4, а белый — номер 5. Итак, мы заполнили все пробелы, кроме одного. Очевидно, что рыбку держит немец. Есть и другие алгоритмы решения, например, вот решение, сформулированное Алексеем aka WVr, 8 декабря 2007го, имеющие лишь два предположения, причём оба имеют лишь два варианта, один из которых — ложный, а второй — истинный: Условия: 1. Англичанин живет в красном доме. 2. Швед держит собаку. 3. Датчанин пьет чай. 4. Зеленый дом налево от белого и. 5. . его жилец пьет кофе. 6. Курильщик Pall Mall держит птичку. 7. Жилец дома, находящегося в середине пьет молоко. 8. Жилец желтого дома курит Dunhill. 9. Норвежец живет в первом доме. 10. Курильщик Marlboro живет рядом с владельцем кота. 11. Владелец лошади живет рядом с курильщиком Dunhill. 12. Курильщик Winfield пьет пиво. 13. Дом Норвежца — рядом с синим домом. 14. Немец курит Rothmans. 15. Курильщик Marlboro живет рядом с тем, кто пьет воду. Вопрос: кто держит рыбок? Дома нумеруем слева направо.(9) + (13) дают: второй дом = синий. С учётом этого, и с учётом (4), ясно, что зелёный дом или №3, или №4. Однако, с учётом ещё и (7) + (5), ясно, что зелёный — это №4. Тогда, согласно (4), белый — это дом №5. Теперь, или дом №1 красный, или он жёлтый. Третьего не дано. Предположим, что он красный. Согласно (1), в красном доме (как мы предположили, это дом №1) — живёт англичанин. Однако, осгласно (9), в первом доме живёт вовсене англичанин, а норвежец! Значит, наше преположение неверно, и на самом деле: Дом №1 — жёлтый, ну и, наконец, дом №3 — красный. Таким образом, мы выяснили геометрическое расположение домов, и можем теперь использовать имеющиеся условия типа «живёт рядом». Первым делом используем (13) + (9), откуда однозначно следует, что во втором доме держат лошадь. Далее, в первом доме, согласно (8), курят Dunhill. Затем, глядя на (3), и уже зная, что в доме №3 пьют молоко, в доме №4 — кофе (из (5) ), а в доме №1 — НЕ датчанин (согласно (9) ), предположим, что датчанин с чаем живёт в пятом доме. Тогда выйдет, что в домах с третьего по пятый пьют, соответственно: молоко, кофе, чай. А потому, пиво и вода остаются, в любом порядке, домам №1 и №2. Согласно (12) и (15), получаем, что в домах №1 и №2 курят, в любом порядке, Winfield и Marlboro. Однако, как мы установили ранее, дом №1 — жёлтый, а согласно (8), в жёлтом доме курят Dunhill. Получается, что наше предположение про датчанина с чаем, живущего в пятом доме, — неверно, так как оно ведёт к непреемлемому результату: три марки сигарет на два дома (вариант, когда воду пьют во втором доме, а курильщик мальборо живёт в третьем — невозможен, так как вода во втором значит пиво в первом, а пиво в первом, согласно (12), означает Winfield в первом, но, как мы уже знаем, в первом курят Dunhill, а вовсе не Winfield).Раз предположение про датчанина неверно, значит, датчанину с чаем остаётся только дом №2. Напитки, таким образом, не установлены только в доме №1 и №5, эти напитки — вода и пиво. Зная, что в первом доме курят Dunhill, получаем любителя пива и Winfield — в доме №5. Значит, тот, кто курит Rohtmans, не живёт ни в доме №1, ни в доме №5. А согласно (14), Rohtmans курит немец — вот его-то в этих домах и нету. Однако, как мы установили ранее, дома с первого по третий занимают, соответственно, норвежец, датчанин, и англичанин — явно не немцы. Отсюда, немцу остаётся дом №4, где он и прописан вместе со своими Rohtmans. А значит, шведу остаётся дом №5, согласно (2), в этом же доме №5 живёт собака.По сигаретам: мы уже знаем про Данхилл, Ротманс и Винфилд (№1, №4 и №5 соответственно). Разберёмся с остальными сигаретами: зная уже расположение уже 4х напитков, ясно, что в доме №1 — вода, и, согласно (15), в доме №2 — Мальборо. Остаётся пятая марка сигарет, Pall Mall, и один свободный дом под них — №3. Там и курят Pall Mall.Наконец, зная порядок домов, их цвета, национальности их жильцов, напитки, марки сигарет, разберёмся с животными: Лошадь — дом №2 (установлено ранее); Собака — у шведа (2), а он — в доме №5; Птичка — у курильщика Pall Mall, а это дом №3; Кот — рядом с курильщиком Мальборо. Мальборо курят в доме №2, значит кот — или в третьем, или в первом. Но в третьем уже есть Птичка; значит, кот в доме №1. Остался свободным (для домашнего животного) только дом №4. Там и держат рыбок. Как показано выше, в доме №4 живёт немец.

Ответ
дом 1 2 3 4 5
цвет жёлтый синий красный зелёный белый
национальность норвежец датчанин англичанин немец швед
напиток вода чай молоко кофе пиво
сигареты «Данхел» «Мальборо» «Пал Мал» «Ротманс» «Винфилд»
животное кошка лошадь птицы РЫБКА собака

Конечно, это решение предполагает, что недостающие в условиях задачи животное и напиток и есть искомые рыбки и вода. Тем не менее, прямо в условиях это нигде не указано. Многие поэтому утверждают, что единственный правильный ответ — «в задаче не хватает данных», так как мы не можем быть уверены в том, что рыбки, например, вообще живут хотя бы в одном из этих домов. Однако, этим суждением зачастую «покрывают» свою неудачу в решении задачи. Кроме того, предполагается, что первый дом — слева.
Кто разводит рыбок? Или решение загадки Эйнштейна регулярным языком

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

Головоломка про пять разноцветных домов

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

  • Норвежец живёт в первом доме.
  • Англичанин живёт в красном доме.
  • Зелёный дом находится слева от белого, рядом с ним.
  • Датчанин пьёт чай
  • Тот, кто курит Marlboro, живёт рядом с тем, кто выращивает кошек.
  • Тот, кто живёт в жёлтом доме, курит Dunhill.
  • Немец курит Rothmans.
  • Тот, кто живёт в центре, пьёт молоко.
  • Сосед того, кто курит Marlboro, пьёт воду.
  • Тот, кто курит Pall Mall, выращивает птиц.
  • Швед выращивает собак.
  • Норвежец живёт рядом с синим домом.
  • Тот, кто выращивает лошадей, живёт в синем доме.
  • Тот, кто курит Winfield, пьет пиво.
  • В зелёном доме пьют кофе.

Вопрос: кто разводит рыбок?Чтобы решить задачу нужно найти такую последовательность домов, цветов, национальностей, напитков и сигарет, чтобы они удовлетворяли правилам вышеИ так, что и где мы будем искать. Для начала нужно каким-то образом формализовать правила. У нас пять домов, цветов, национальностей, напитков, животных и сигарет. Произвольный вариант дома с «жильцами» может выглядеть так:Но этого недостаточно, так как у нас есть правила, которые учитывают взаимное расположение домов и предметов в них (к примеру, правила: 1, 3, 5. ). Учтем это, расположив в строке пять домов последовательно:Строка выше — один из вариантов расположения предметов. В данном случае, неверный. Если же мы составим все возможные варианты, и поместим это в один текст, получится следующее:Где n — nation, c — color, a — animal, d — drink, s — cigarettes. И каждая из этих букв может принимать одно из пяти своих значений.Замечательно. То, что остается сделать — перевести правила на язык регулярных выражений:

  • ^norwegian w+
  • w+ englishman red w+
  • w+ dane w w tea w+
  • .

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

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

Создадим текстовый файл со списком всех объектов. Это будет наш алфавит.Построим базовые автоматы, каждый из которых допускает только одно слово из алфавита. fstcompile — команда пакета openfst, компилирующая текстовое представление автомата в бинарное. Это нужно для того, чтобы потом применять к этому автомату различные операции.И так, у нас появился список файлов-автоматов. Они очень тривиальны. К примеру, автомат beer будет выглядить так:Загадка эйнштейна про 5 домов кто выращивает рыбокОн эквивалентен регулярному выражению «beer». Пока все довольно просто. Кроме того нам понадобятся еще два базовых автомата — пустое множество, и любая строка, т.е. звездочка *. Строим.Шаг 2 — Строим пустой автомат и звездочку

Пустая строка, автомат ’empty’: Звездочка, автомат ‘star’: Последний делается простым объединением базовых автоматов и замыканием. В регулярных выражениях это всего лишь (englishman|dane|. |cat|dog|. )*. Этот автомат будет таким:
Загадка ЭйнштейнаШаг 3 — Строим дома

Правила будет удобней описывать, если создать более комплексные автоматы, такие как национальность, цвет и т.д. Опять, использую несложный скрипт:Правила 5, 9 и 12 являются составными. Я определяю каждую часть отдельно, а потом делаю объединение. Скрипт concat.sh всего лишь делает конкатинацию автоматов, переданных в аргументах: Итак, на выходе получим автоматы r1,r2. r15. Все готово для финального шага.

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

Где intersect.sh — пересечение автоматов в аргументах. На этом можно было бы и закончить — посмотреть автомат и узнать у кого рыба. Но я с самого начала не учел одну вещь — в моих правилах каждое из слов может повторятся. К примеру, два человека могут пить одно пиво и заводить одно животное. Это неверно по условиям задачи. Создавать такой фильтр крайне неудобно, используя регулярные языки, т.к. у нас нет способа «запомнить», что такое слово уже было. Но ограничить как-то нужно. По этому подвергаем финальный результат следующему скрипту. Этот скрипт формирует специальный авотомат для каждого слова из алфавита, и применяет его к результату. Таким образом, отметаются пути с повторяющимися словами. В итоге, финальный результат (а по сути, автомат ‘out’) выглядит так:Загадка ЭйнштейнаЭто частичное изображение автомата (все не влезло). Каждые пять слов определяют дом. Как видно из рисунка, немец разводит рыбок.

Заключение

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

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

Как вам статья?

 
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
AgroKlassikSnab.ru
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

десять + 15 =