鑑於英國皇室, 只使用X父母(X)和母親(X,Y),其中X的父親是Y,如何創建連續線(X,Y),其中Y是確定舊的繼承序言序號
我已經定義了所有的男性和女性,父
我已經嘗試了這個問題,以及X在序言的繼任者:
son(X,Y) :- parent(X,Y), male(Y).
daughter(X,Y) :- parent(X,Y), female(Y).
successor(X,Y):- (son(X,Z);daughter(X,Z)) , (Y=Z;successor(Z,Y)).
顯然這只是工作在louise之後,它應該去安妮而不是彼得。
我根據他們在父母(X,Y)的出生安排了事實。 事實就是我所詢問後繼(X,Y)時,到目前爲止得到
male(charles).
male(william).
male(peter).
male(henry).
male(andrew).
male(edward).
male(viscount).
male(savanna).
female(elizabeth).
female(anne).
female(zara).
female(beatrice).
female(eugenie).
female(louise).
female(isla).
parent(elizabeth,charles).
parent(elizabeth,anne).
parent(elizabeth,andrew).
parent(elizabeth,edward).
parent(anne,peter).
parent(anne,zara).
parent(charles,william).
parent(charles,henry).
parent(andrew,beatrice).
parent(andrew,eugenie).
parent(edward,louise).
parent(edward,viscount).
parent(peter,savanna).
parent(peter,isla).
結果。
X = elizabeth,
Y = charles ;
X = elizabeth,
Y = william ;
X = elizabeth,
Y = henry ;
X = elizabeth,
Y = andrew ;
X = elizabeth,
Y = beatrice ;
X = elizabeth,
Y = eugenie ;
X = elizabeth,
Y = edward ;
X = elizabeth,
Y = viscount ;
X = elizabeth,
Y = louise ;
在此之後,當我嘗試去安妮家庭,它出錯了。
X = anne,
Y = peter ;
X = anne,
Y = savanna ;
X = anne,
Y = isla ;
X = charles,
Y = william ;
X = charles,
Y = henry ;
X = edward,
Y = viscount ;
X = peter,
Y = savanna ;
X = elizabeth,
Y = anne ;
X = elizabeth,
Y = peter ;
X = elizabeth,
Y = savanna ;
X = elizabeth,
Y = isla ;
X = elizabeth,
Y = zara ;
X = anne,
Y = zara ;
X = andrew,
Y = beatrice ;
X = andrew,
Y = eugenie ;
X = edward,
Y = louise ;
X = peter,
Y = isla ;
去,我想安妮樹時所需的輸出是
X = elizabeth,
Y = anne;
X = anne,
Y = peter ;
X = anne,
Y = savanna ;
X = anne,
Y = isla ;
我一直在嘗試各種組合,這是我得到的最接近到目前爲止 X,同時父ÿ是父母(X,Y)中的孩子。
試圖接班人的組合:
successor(X,Y):- (son(X,Z);daughter(X,Z)) , (Y=Z;successor(Z,Y)).
successor(X,Y):- parent(X,Z), (Y=Z ; successor(Z,Y)).
successor(X,Y):- (male(Z);female(Z)) , (Y=Z;successor(Z,Y)).
successor(X,Y):- (parent(X,Z),(male(Z);female(Z)), (Y=Z;successor(Z,Y)).
他們都沒有工作。
顯示舊系繼承的實際結果是查爾斯的家人,安德魯的家人,愛德華的家人,最後是安妮的家人。
「parent(X,Y)」的通常讀數是「'X'是'Y'的父親。它也與給定的代碼和數據庫一致(「伊麗莎白」不能有四個父母,我認爲)。 –