prolog:
用prolog证明:Conclusion: I am my owngrandfather.[用prolog证明我是我自己的爷辈]
1、问题部分:
I married a widow who has agrown-up daughter (daughter_W). My father (father_I) who visited us quiteoften, fell in love with my step-daughter and married her. Hence my fatherbecame my son-in-law and my stepdaughter became my mother. Some months later,my wife gave birth to a son (son_I), who became the brother-in-law of myfather, as well as my uncle. The wife of my father, that is, my step-daughter,also had a son (son_F).
Conclusion: I am my owngrandfather.
我娶了一个寡妇,她有一个成年的女儿。我的父亲经常来看我们,他爱上了我的继女并娶了她。因此,我的父亲成了我的女婿,我的继女成了我的母亲。几个月后,我的妻子生了一个儿子(son_S1),他成了父亲的姐夫和我的叔叔。我父亲的妻子,也就是我的继女,也有一个儿子。
结论:我是我自己的祖父。
2、代码部分:
father(father_I,me).
father(me,son_I).
father(father_I,son_F).
father(me,daughter_W).
mother(widow,daughter_W).
mother(widow,son_I).
mother(daughter_W,son_F).
man(me).
man(father_I).
man(son_I).
man(son_I).
man(son_F).
woman(widow).
woman(widow).
woman(daughter_W).
husband(me,widow).
husband(father_I,daughter_W).
father(X,Y) :- husband(Y,Z),father(X,Z).
father(X,Y) :- husband(X,Z),mother(Z,Y).
brother(X,Y) :- father(Z,X),father(Z,Y),man(X).
sister(X,Y) :- father(Z,X),father(Z,Y),woman(X).
brother(X,Y) :- husband(Y,C),father(Z,C),father(Z,X).
uncle(X,Y) :- father(Z,Y),brother(X,Z).
grandfather(X,Y) :- father(Z,Y),father(X,Z).
mother(X,Y) :-husband(M,X),father(M,Y).
grandmother(X,Y) :-mother(X,Z),husband(M,Z),father(M,Y).
3、关系图部分:
4、代码实现部分:
5、prolog安装部分:
6、后记部分:
希望能帮助大家,微信公众号zhangnieng!