Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 座位表开始在序言中输出错误的排列_Algorithm_Prolog_Permutation - Fatal编程技术网

Algorithm 座位表开始在序言中输出错误的排列

Algorithm 座位表开始在序言中输出错误的排列,algorithm,prolog,permutation,Algorithm,Prolog,Permutation,我有一个家庭作业,我必须写一个谓词座位图(X):-,它将有8个座位。这些规则是: 相邻的座位伙伴必须是异性 相邻的座位伙伴必须至少有一个相同的爱好 我想我写了下面的代码来创建正确的案例 当我使用SWI Prolog中的座位图(X)运行此程序时,首先得到以下答案: X=[jim,fay,tom,beth,joe,cami,bob,sue] 然而,我随后的排列似乎完全错了。。点击后再过几次,这表明这是一个有效的答案: X=[jim、beth、sue、tom、joe、cami、bob、fay]。 我做

我有一个家庭作业,我必须写一个谓词
座位图(X):-
,它将有8个座位。这些规则是:

  • 相邻的座位伙伴必须是异性
  • 相邻的座位伙伴必须至少有一个相同的爱好
  • 我想我写了下面的代码来创建正确的案例

    当我使用SWI Prolog中的
    座位图(X)运行此程序时,
    首先得到以下答案:

    X=[jim,fay,tom,beth,joe,cami,bob,sue]

    然而,我随后的排列似乎完全错了。。点击
    再过几次,这表明这是一个有效的答案:

    X=[jim、beth、sue、tom、joe、cami、bob、fay]。


    我做错了什么?或者是什么导致我的排列开始不遵循座位表规则?

    座位规则谓词不应该包含所有对吗

    % Create the rules for our seating chart list
    seatingRules([P1,P2,P3,P4,P5,P6,P7,P8|_]):-
      % Have each adjacent person be of the opposite gender
      gender(P1,P2),
      gender(P2,P3),
      gender(P3,P4),
      gender(P4,P5),
      gender(P5,P6),
      gender(P6,P7),
      gender(P7,P8),
      gender(P8,P1),
      % Have each adjacent person have at least one of the same hobby
      similarHobbies(P1,P2),
      similarHobbies(P2,P3),
      similarHobbies(P3,P4),
      similarHobbies(P4,P5),
      similarHobbies(P5,P6),
      similarHobbies(P6,P7),
      similarHobbies(P7,P8),
      similarHobbies(P8,P1).
    

    是的,我刚刚更新了它,但后来我还是得到了同样的结果。基本上,相同性别的人会坐在一起。。
    % Create the rules for our seating chart list
    seatingRules([P1,P2,P3,P4,P5,P6,P7,P8|_]):-
      % Have each adjacent person be of the opposite gender
      gender(P1,P2),
      gender(P2,P3),
      gender(P3,P4),
      gender(P4,P5),
      gender(P5,P6),
      gender(P6,P7),
      gender(P7,P8),
      gender(P8,P1),
      % Have each adjacent person have at least one of the same hobby
      similarHobbies(P1,P2),
      similarHobbies(P2,P3),
      similarHobbies(P3,P4),
      similarHobbies(P4,P5),
      similarHobbies(P5,P6),
      similarHobbies(P6,P7),
      similarHobbies(P7,P8),
      similarHobbies(P8,P1).