Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Олимпиады

Страница: 1 |

 

  Вопрос: Задача от Эйнштейна Добавлено: 09.09.09 09:57  

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

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

Ну что, как вы думаете, возможно?

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #1 Добавлено: 09.09.09 12:45
Ах да, забыл указать сам вопрос - кто выращивает рыбок?

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 09.09.09 14:33
Тоже хотел написать такую программу, так что буду рад, если кто-нибудь сделает это за меня (желательно на C++). Основная сложность в записи высказываний 3, 5 и 12. Могу проконсультировать по аське.

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 09.09.09 14:37
http://darnley.livejournal.com/25666.html
Для тестирования

Ответить

Номер ответа: 4
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #4
Добавлено: 09.09.09 15:53
AngryBadger
Вообще это не очень сложная задача, если есть ручка и бумажка. Таким способом не больше пяти минут уйдёт на неё.
Вообще, немец любит рыбок.

Ответить

Номер ответа: 5
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #5 Добавлено: 09.09.09 16:37
AWP,
То что это немец - это дело понятное, но вот как построить алгоритм поиска немца в виде программы - мне пока в голову ничего не приходит.
Sharp,
По поводу условий, я пока представляю что-то типа этого.
Sub Test()
GreenNum = atLeft(WhiteNum)
End Sub
Function atLeft(FromWhom)
atLeft = FromWhom - 1
End Function


Ответить

Номер ответа: 6
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #6
Добавлено: 09.09.09 21:25
Сделать таблицу в которую пихаются значения. Пустая ячейка будет правильной, напротив её будет доп ответ.

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 09.09.09 23:17
Задача Эйнштейна сводится к поиску Э компонентов связности размера Д в Д-дольном графе, если ребро может существовать, не существовать или быть неопределенным. Д - число характеристик человека, Э - число людей. В результате ребер Д*(Д-1)*Э^2. В задаче Эйнштейна 375 ребер (Э=5, Д=6), в задаче ЛКШ 1344 (Э=8, Д=7).

Ответить

Номер ответа: 8
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #8 Добавлено: 10.09.09 00:26
Я, честно, даже и не подумал через графы что-то делать. А идея крутая, пойду поботаню.

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6596
 Профиль | | #9 Добавлено: 10.09.09 18:25
че-то подобное решал на контрольной по прологу. Но наверное попроще было

Ответить

Номер ответа: 10
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6596
 Профиль | | #10 Добавлено: 11.09.09 07:10
Sharp пишет:
Основная сложность в записи высказываний 3, 5 и 12

По-моему несложно записать, если пронумеровать дома, тогда просто записывюется, как относятся друг к другу дома разных жителей

типа
Номер Зеленого=Номер Белого -1

и т.п.

Ответить

Номер ответа: 11
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 11.09.09 13:15
Зато вот на графе это отобразить гораздо сложнее, чем стандартное "скрипач пишет на Haskell" (ребро существует) или "баскетболист и кошатник часто вместе играют в шахматы" (ребро не существует).

Ответить

Страница: 1 |

Поиск по форуму





© Copyright 2002-2011 VBNet.RU | Пишите нам