【发布时间】:2013-03-14 06:07:49
【问题描述】:
请您解释一下我将如何在 Prolog 上编写此代码?
梅森、亚历克斯、史蒂夫、 西蒙站在警察队伍中。其中一位金发碧眼、英俊且没有疤痕。二 其中不是金发的人站在梅森的两边。亚历克斯是唯一一个站立的人 旁边正好是一个英俊的男人。史蒂夫是唯一一个没有站在一个伤痕累累的人旁边 人。谁又金发又帅又不怕?
这里有,
p --> 站立(x,y)
twoOfThem(不是金发,站在梅森的两边)
standing(mason,[x,y]):-
blond([x,y]) == false.
亚历克斯只有一个站在旁边正好一个帅哥
standing(alex,x):-
handsome(x).
Steve 只是没有站在没有疤痕的旁边。
standing(steve,x):-
unscared(x).
【问题讨论】:
-
你试过什么?请向我们展示您的努力(我们应该在 meta 上发布请求,以根据上下文在标记的序言答案中添加此评论...)
-
你有一个事实清单。您的第一步应该是尝试将这些事实放入 Prolog 语法中(以建立一个“数据库”)。然后开始考虑这些事实之间的关系(表示为谓词)。
标签: prolog zebra-puzzle