gpt4 book ai didi

prolog - 使用 Prolog 的爱因斯坦谜语

转载 作者:行者123 更新时间:2023-12-01 15:02:21 24 4
gpt4 key购买 nike

我正在尝试使用 Prolog 解决爱因斯坦之谜。当我尝试按房屋(Hs)运行时,它显示否。任务是

  1. 英国人住在红房子里。
  2. 瑞典人养狗作为宠物。
  3. 丹麦人喝茶。
  4. 绿房子就在白宫的左边。
  5. 温室的主人喝咖啡。
  6. 抽 Pall Mall 烟的老板养鸟。
  7. 黄色房子的主人抽登喜路香烟。
  8. 住在中间房子的主人喝牛奶。
  9. 挪威人住在第一栋房子里。
  10. 抽 Blends 烟的主人住在养猫的主人旁边。
  11. 养马的主人住在抽 Dunhill 烟的主人旁边。
  12. 抽 Bluemasters 烟的老板喝啤酒。
  13. 德国人抽 Prince 烟。
  14. 挪威人住在蓝房子旁边。
  15. 抽 Blends 的主人住在喝水的主人旁边。
    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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com