作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Prolog 解决爱因斯坦之谜。当我尝试按房屋(Hs)运行时,它显示否。任务是
houses(Hs) :- length(Hs, 5), member(h(english,_,_,_,red), Hs), member(h(swede,dog,_,_,_), Hs), member(h(_,_,_,coffee,green), Hs), member(h(dane,_,_,tea,_), Hs), next(h(_,_,_,_,green), h(_,_,_,_,white), Hs), member(h(_,bird,'Pall Mall',_,_), Hs), member(h(_,_,'Dunhill',_,yellow), Hs), Hs = [_,_,h(_,_,_,milk,_),_,_], Hs = [h(norwegian,_,_,_,_)|_], next(h(_,horse,_,_,_), h(_,_,'Dunhill',_,_), Hs), next(h(_,_,blend,_,_), h(_,cat,_,_,_), Hs), member(h(_,_,'Blue Master',beer,_), Hs), member(h(german,_,'Prince',_,_), Hs), next(h(norwegian,_,_,_,_), h(_,_,_,_,blue), Hs), next(h(_,_,'Blend',_,_), h(_,_,_,water,_), Hs), member(h(_,fish,_,_,_), Hs). next(A, B, Ls) :- append(_, [A,B|_], Ls). next(A, B, Ls) :- append(_, [B,A|_], Ls).
我不知道出了什么问题。谢谢
最佳答案
这是您的程序的概括。我添加了一些额外的 *
来删除多个目标,并用 _/*origterm*/
替换了一些术语。然而,最终的程序仍然失败。因此,错误必须出现在剩余片段中。你没有说任何关于这个程序的事情(编辑:你后来添加了一些东西),所以我不(编辑:想要)知道它是关于什么的。但无论如何,错误必须出现在剩余的可见部分:
:- initialization(houses(_Sol)).:- op(950, fy, *).*_.houses(Hs) :- length(Hs, 5), *member(h(english,_,_,_,red), Hs), % 2 *member(h(swede,dog,_,_,_), Hs), *member(h(_,_,_,coffee,green), Hs), *member(h(dane,_,_,tea,_), Hs), *next(h(_,_,_,_,green), h(_,_,_,_,white), Hs), member(h(_,_/*bird*/,'Pall Mall',_,_), Hs), member(h(_,_,'Dunhill',_,_/*yellow*/), Hs), *Hs = [_,_,h(_,_,_,milk,_),_,_], *Hs = [h(norwegian,_,_,_,_)|_], *next(h(_,horse,_,_,_), h(_,_,'Dunhill',_,_), Hs), next(h(_,_,blend,_,_), _/*h(_,cat,_,_,_)*/, Hs), member(h(_,_,'Blue Master',_/*beer*/,_), Hs), member(h(_/*german*/,_,'Prince',_,_), Hs), *next(h(norwegian,_,_,_,_), h(_,_,_,_,blue), Hs), next(h(_,_,'Blend',_,_), _/*h(_,_,_,water,_)*/, Hs), *member(h(_,fish,_,_,_), Hs).next(A, B, Ls) :- append(_, [A,B|_], Ls).next(A, B, Ls) :- append(_, [B,A|_], Ls).
剩下的不多了!可见部分至少有一个错误! (而且,严格来说,其他部分可能还有更多错误。我们根本不知道)。
关于prolog - 使用 Prolog 的爱因斯坦谜语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36816529/
我是一名优秀的程序员,十分优秀!