Логическая задача - Prolog (227078)
Формулировка задачи:
Помогите, пожалуйста дописать решение задачи:
Браун, Гриффит, Клеменс и Грин -четверо студентов университетов разных стран встретились на международном фестивале молодёжи и студентов. Один из них – канадец, второй – американец, третий – англичанин, четвёртый – австралиец. Браун и Клеменс были на концерте, в котором принимал участие англичанин. Гриффит и австралиец пели дуэтом под аккомпанемент американца. Австралиец пригласил к себе в гости Грина и собирается пригласить Брауна. Браун за время фестиваля так и не познакомился с Клеменсом. Определите национальности студентов.
Большую часть решения я написал, мне осталось записать последнее предложение: Браун за время фестиваля так и не познакомился с Клеменсом. Я не могу понять как его связать с остальными.
Решение задачи: «Логическая задача»
textual
Листинг программы
nations(Mens, Nations):- Mens = [braun, griff, klem, grin], Nations = [Braun, Griff, Klem, Grin], permutation([can, amer, angl, avstr], Nations), Braun \= angl, Klem \= angl, % 1 Griff \= avstr, Griff \= amer, % 2 Grin \= avstr, Braun \= avstr, % 3 Meets = [Griff, avstr, amer], % 4 not( member(Braun, Meets) ). % 5
Объяснение кода листинга программы
- Создается список
Mens
с четырьмя элементами:braun
,griff
,klem
,grin
. - Создается список
Nations
с четырьмя элементами:Braun
,Griff
,Klem
,Grin
. - Выполняется операция перестановки, в результате которой список
Nations
принимает значение[can, amer, angl, avstr]
. - Проверяется, что элемент
Braun
не равенangl
, а элементKlem
не равенangl
. - Проверяется, что элемент
Griff
не равенavstr
и не равенamer
. - Проверяется, что элемент
Grin
не равенavstr
и не равенbraun
. - Создается список
Meets
с тремя элементами:Griff
,avstr
,amer
. - Проверяется, что элемент
Braun
не является членом спискаMeets
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д