爱因斯坦谜语中的数值比较
Numerical comparision in Einstein Riddle
我的版本对学生的姓名、年龄、出身和学科感兴趣。
solve :-
length(X, 6), % there are six students
member([manuel, 19, _, _], X), % Manuel is 19 years old
member([_, 20, _, win], X), % 20 years old student studies win
...
但是有些规则我不知道如何在 Prolog 中实现。例如:
奥利弗比数学系的学生大两岁,但比华盛顿的学生小两岁。
如何创建可以比较年龄的规则?
member([oliver,OLIVER_AGE,_,_],X) ,
member([_,MATH_AGE,_,math],X) ,
member([_,WASHINGTON_AGE,washington,_],X) ,
OLIVER_AGE is MATH_AGE + 2 ,
OLIVER_AGE is WASHINGTON_AGE - 2
我的版本对学生的姓名、年龄、出身和学科感兴趣。
solve :-
length(X, 6), % there are six students
member([manuel, 19, _, _], X), % Manuel is 19 years old
member([_, 20, _, win], X), % 20 years old student studies win
...
但是有些规则我不知道如何在 Prolog 中实现。例如:
奥利弗比数学系的学生大两岁,但比华盛顿的学生小两岁。
如何创建可以比较年龄的规则?
member([oliver,OLIVER_AGE,_,_],X) ,
member([_,MATH_AGE,_,math],X) ,
member([_,WASHINGTON_AGE,washington,_],X) ,
OLIVER_AGE is MATH_AGE + 2 ,
OLIVER_AGE is WASHINGTON_AGE - 2