#0
by _Atilla
Есть знам задача Эйнштейна: 1. Есть 5 домов, каждый разного цвета. 2. В каждом доме живёт один человек, отличающийся от соседнего по национальности: немец, англичанин, швед, датчанин и норвежец. 3. Каждый пьёт только один определённый напиток, курит определённую марку сигарет и держит определённое животное. 4. Никто из пяти человек не пьёт одинаковые с другими напитки, не курит одинаковые сигареты и не держит одинаковое животное. Вопрос: Кому принадлежит рыба? Подсказки: 1. Англичанин живёт в красном доме. 2. Швед держит собаку. 3. Датчанин пьёт чай. 4. Зелёный дом стоит слева от белого, рядом. 5. Жилец зелёного дома пьёт кофе. 6. Человек, который курит "Pall Mall", держит птицу. 7. Жилец из среднего дома пьёт молоко. 8.Жилец из желтого дома курит "Dunhill". 9. Норвежец живёт в первом доме. 10. Курильщик "Marlboro" живет около того, кто держит кошку. 11. Человек, который содержит лошадь, живёт около того, кто курит "Dunhill". 12. Курильщик сигарет "Winfield" пьёт пиво. 13. Норвежец живёт около голубого дома. 14. Немец курит "Rothmans" 15. Курильщик "Marlboro" живёт по соседству с человеком, который пьёт воду. % h(nationality, color, drink, cigar, pet) member(X,[X|_]). member(X,[_|Ys]) :- member(X, Ys). first(X, [X|_]). left_of(X,Y,[X,Y|_]). left_of(X,Y,[_|Zs]) :- left_of(X, Y, Zs). next_to(X,Y,Zs) :- left_of(X, Y, Zs). next_to(X,Y,Zs) :- left_of(Y, X, Zs). middle(X,[_,_,X,_,_]). solve(Hs) :- Hs = [_,_,_,_,_], member(h(_, _, _, _, fish), Hs), member(h(brit, red, _, _, _), Hs), member(h(swede, _, _, _, dog), Hs), member(h(dane, _, tea, _, _), Hs), member(h(_, green, coffee, _, _), Hs), member(h(_, _, _, pallmall, bird), Hs), member(h(_, yellow, _, dunhill, _), Hs), member(h(_, _, beer, bluemaster, _), Hs), member(h(german, _, _, prince, _), Hs), first(h(norwegian, _, _, _, _), Hs), next_to(h(norwegian,_,_,_,_), h(_,blue,_,_,_), Hs), next_to(h(_, _, _, blends, _), h(_, _, water, _, _), Hs), next_to(h(_, _, _, _, horse), h(_, _, _, dunhill, _), Hs), next_to(h(_,_,_,blends,_), h(_,_,_,_,cat), Hs), middle(h(_,_,milk,_,_), Hs), left_of(h(_, green, _, _, _), h(_, white, _, _, _), Hs). ?- solve(X), write(X). Вопрос: Условие "Англичанин живёт в красном доме." задается в прологе как h(brit, red, _, _, _). Как задается условие "Англичанин НЕ живёт в красном доме."???
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Математика. Километровые столбы
- v8: СКД. Группировка по выражениям, содержащим агрегатные функции, не допустима
- СКД: итоги по вычисляемому полю.
- Не меняется расположение колонок табличной части документа
- Проблемы с правами: Нарушение прав доступа при загрузке в БП
- УТ 10.3 Как выставляют документы от подразделений с разным КПП.
- v8: Как из XML файла загрузить данные в табличное поле?
- На чем устроить корпоративную файлопомойку.
- Запрос. Наличие сотрудника на каждый день в подразделении.
- Отваливается сканер cipher lab 1266
- Черный список в Nokia 6500
- Групповой перенос элементов справочника
- СКД и пакетный запрос
- Как правильно настроить обмен УТ <-> БП.
- СКД - выражение параметра
- Вывод программно-созданных элементов формы.
- v7: Как правильно выставить счет фактуру для иностранной организации
- v7: Реализовано ли в ЗУП или ЗИК ограничение оплаты больничного за счет ФСС в 60 дней?
- оповещение с сервера на клиент
- УПП Контактная информация контрагентов