2016-11-20 74 views
0

我可以檢查人與人之間的關係(叔叔,阿姨,父親,祖父......),但現在我想知道兩個人是否在相同或不同的樹,即檢查它們是否來自同一個「家庭」。序言家族樹:檢查兩個人是否來自同一個家庭

一個「家庭」的定義是一種愚蠢的,因爲我們都有一個共同的祖先,但是這是鍛鍊我必須做的......

Family tree example

我想檢查莫里斯和Floriane是來自同一個家庭......

+0

它應該是足夠的檢查,如果他們有一個共同的祖先與否。 – 2016-11-20 20:15:12

回答

0

你有沒有嘗試過這樣的:

inSameFamily(Person1, Person2) :- 
    ancestor(Person1, CommonAncestor), 
    ancestor(Person2, CommonAncestor). 
+0

其實我試過了,但它並不總是有效,因爲樹的第一個成員沒有任何父母,所以你找不到這個人的祖先... –

+0

@GuillaumeLeseur它真的取決於你如何決定定義祖先/ 2。或者你可能想要定義一個使用'祖先/ 2'的謂詞,並且在兩個參數統一時也成功:'same_family(X,X)。 same_family(X,Y): - dif(X,Y),(祖先(X,Y);祖先(Y,X)。' – 2016-11-21 08:47:36

+0

我編輯了這篇文章,如果你想知道你可以檢查鏈接的圖片我的意思是 –