avva: (Default)
[personal profile] avva
Увидел в очередной раз так называемую "загадку Эйнштейна" в записи [livejournal.com profile] quantum_angel и решил на этот раз её решить. Долго думал, но никак не получалось увидеть форсированный путь к решению. Удивился. Написал программку, чтобы умно перебрала и нашла все решения, и что же оказалось? Что есть четыре разных решения, в трёх из которых рыбок разводит англичанин, а в одной - датчанин. Вот они:
1.
В первом, зелёном, доме живёт норвежец, пьёт кофе, курит Pall Mall, разводит птиц.
Во втором, жёлтом, доме живёт датчанин, пьёт чай, курит Dunhill, разводит кошек.
В третьем, красном, доме живёт англичанин, пьёт молоко, курит Rothmans, разводит рыбок.
В четвёртом, синем, доме живёт немец, пьёт воду, курит Marlboro, разводит лошадей.
В пятом, белом, доме живёт швед, пьёт пиво, курит Phillip Morris, разводит собак.

2.
В первом, синем, доме живёт норвежец, пьёт пиво, курит Phillip Morris, разводит лошадей.
Во втором, жёлтом, доме живёт датчанин, пьёт чай, курит Dunhill, разводит рыбок.
В третьем, красном, доме живёт англичанин, пьёт молоко, курит Pall Mall, разводит птиц.
В четвёртом, зелёном, доме живёт швед, пьёт кофе, курит Rothmans, разводит собак.
В пятом, белом, доме живёт немец, пьёт воду, курит Marlboro, разводит кошек.


3.
В первом, синем, доме живёт норвежец, пьёт пиво, курит Phillip Morris, разводит лошадей.
Во втором, жёлтом, доме живёт швед, пьёт воду, курит Dunhill, разводит собак.
В третьем, красном, доме живёт англичанин, пьёт молоко, курит Rothmans, разводит рыбок.
В четвёртом, зелёном, доме живёт немец, пьёт кофе, курит Marlboro, разводит кошек.
В пятом, белом, доме живёт датчанин, пьёт чай, курит Pall Mall, разводит птиц.


4.
В первом, зелёном, доме живёт норвежец, пьёт кофе, курит Pall Mall, разводит птиц.
Во втором, жёлтом, доме живёт датчанин, пьёт чай, курит Dunhill, разводит кошек.
В третьем, белом, доме живёт швед, пьёт молоко, курит Rothmans, разводит собак.
В четвёртом, синем, доме живёт немец, пьёт воду, курит Marlboro, разводит лошадей.
В пятом, красном, доме живёт англичанин, пьёт пиво, курит Phillip Morris, разводит рыбок.


По-видимому, условие было несколько искажено в переводе/передаче из рук в руки, из книг в книги, из веб-страницы на веб-страницу и т.п.

Ну хорошо. Решил взять какое-нибудь условие по-английски и посмотреть, что будет там. Взял условие с этой страницы. Правила номер 12 и 13 там другие, а остальные идентичные (кроме названий двух марок сигарет, что ничего не меняет в данном случае). Запустил. Получилось уже семь решений, рыбок в которых попеременно разводят датчанин, норвежец и немец. На той странице ответ только один - немец, но он является только одним из семи возможных.

Наконец, нашёл ещё одну страницу с подробным объяснением решения. Условие (по-английски) на ней такое же, как на предыдущей, только опять изменены немного марки сигарет (какая-то странная обсессия на марках сигарет, ей-богу). Но чтение решения наконец всё прояснило: в условии номер 3 (в русской нумерации как у [livejournal.com profile] quantum_angel; на английской странице это условие номер 4) имеется в виду, что зелёный дом стоит слева от белого дома, рядом с ним; я же понял русское условие "Зеленый дом находится левее белого" как то, что он находится по левую руку, но необязательно рядом. Если бы я сразу читал английский вариант с его "on the left", то понял бы правильно. Опять проблема перевода!

Запустив заново программу с правильным условием, я действительно получил единственный ответ. Но русский набор правил, как у [livejournal.com profile] quantum_angel, не даёт единственного ответа даже если исправить условие номер 3: всё равно выходят два решения с англичанином и датчанином. Необходимо исправить условия 12 и 13 по образцу соответствующих английских, и тогда всё становится на свои места. Вот исправленное условие по-русски, и единственное подходящее к нему решение:

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

Решение:

В первом, жёлтом, доме живёт норвежец, пьёт воду, курит Dunhill, разводит кошек.
Во втором, синем, доме живёт датчанин, пьёт чай, курит Rothmans, разводит лошадей.
В третьем, красном, доме живёт англичанин, пьёт молоко, курит Pall Mall, разводит птиц.
В четвёртом, зелёном, доме живёт немец, пьёт кофе, курит Marlboro, разводит рыбок.
В пятом, белом, доме живёт швед, пьёт пиво, курит Phillip Morris, разводит собак.

Откуда взялась неправильная русская версия? Не знаю. Сетевым поиском находятся две страницы (1, 2) с неправильным текстом и несколько с правильным, например здесь, где также обсуждают вопрос о двусмысленности условия.

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

Date: 2002-07-03 12:32 pm (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
С помощью DPLL такое можно решить.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 08:34 pm
Powered by Dreamwidth Studios