Напишите программу для решения следующей логической головоломки. В пяти домах, окрашенных в разные цвета, обитают мужчины разных национальностей. Они держат разных животных, предпочитают разные напитки и курят сигареты разных марок. Известно, что:
1. Англичанин живет в красном доме.
2. У испанца есть собака.
3. Кофе пьют в зеленом доме.
4. Украинец пьет чай.
5. Зеленый дом - первый по правую руку от дома цвета слоновой кости.
6. Курильщик "Уинстона" держит улиток.
7. Сигареты "Кул" курят в желтом доме.
8. Молоко пьют в среднем доме.
9. Норвежец живет в крайнем слева доме.
10. Мужчина, курящий "Честерфилд", живет в доме, соседнем с домом мужчины, у которого есть лиса.
11. Сигареты "Кул" курят в доме, соседнем с домом, где имеется лошадь.
12. Мужчина, предпочитающий "Лаки страйк", пьет апельсиновый сок.
13. Японец курит сигареты "Парламент".
14. Норвежец живет в доме рядом с голубым домом.
Вопросы: "У кого есть зебра?", "Кто пьет воду?".
Для решения этой задачи полезно использовать метод "образовать и проверить". Опишем его.
Метод "образовать и проверить" - общий прием, используемый при проектировании алгоритмов и программ. Суть его состоит в том, что один процесс или программа генерируют множество предполагаемых решений задачи, а другой процесс или программа проверяет эти предполагаемые решения, пытаясь найти те из них, которые действительно являются решениями задачи.
Обычно программы, реализующие метод "образовать и проверить", конструировать проще, чем программы, в которых решение находится непосредственно, однако они менее эффективны. Стандартный прием оптимизации программ типа "образовать и проверить" заключается в стремлении погрузить программу проверки в программу генерации предполагаемых решений настолько "глубоко", насколько это возможно. В пределе программа проверки полностью переплетается с программой генерации предполагаемых решений, которая начинает порождать только корректные решения.
Опубликовал vovan666
May 25 2013 16:07:39 ·
0 Комментариев ·
5022 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.