Prolog免费日代码

时间:2017-01-18 15:18:08

标签: prolog

我对我的任务有疑问。 任务:

人们有分配给他们的日子。在这些日子里,他们可以自由工作。

Karl在Mo,Wed,Thu免费

Lukas在星期二,星期三,星期四,星期五免费

Jon在Mo,Wed,Sa

上免费

Alex在Thu,Fr,Sa

上免费

Max,Mo,Wed,Fr,Sa,Su

是免费的

我为这些假设创建了知识库:

free(Karl,Mo).

free(Karl,Wed).

free(Karl,Thu).

..

..

free(Max,Su).

问4个问题:

  1. 第X天人X是免费的。

  2. 什么时候一个人在一起。

  3. 哪些人连续2/3/4天免费。

  4. 谁连续3天免费。

  5. 问题1很简单。

    ?- free(X,Day).
    

    无法弄清楚最后3个。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  

自由(SUSI,1)。

     

自由(SUSI,3)。

     

自由(SUSI,4)。

     

自由(垒,2)。

     

自由(垒,3)。

     

自由(垒,4)。

     

自由(垒,5)。

     

自由(拉斯,1)。

     

自由(拉斯,3)。

     

自由(拉斯,6)。

     

自由(汉纳,4)。

     

自由(汉纳,5)。

     

自由(汉纳,6)。

     

自由(弗里多林,1)。

     

自由(弗里多林,3)。

     

自由(弗里多林,5)。

     

自由(弗里多林,6)。

     

自由(弗里多林,7)。

     

%的游离(X,Y)。

     

一起%(X,Y,Z)。

     

在一起(Person1,Person2,When): -   free(Person1,When),free(Person2,When),+(Person1 = Person2)。

好的,我更新了知识库,并设法完成了第一个和第二个任务。

现在坚持第三个:/