[問題] 一題Prolog

作者: kamihane (也無風雨也無晴)   2014-08-15 18:25:40
題目是 要將http://www.brainbashers.com/showpuzzles.asp?puzzle=ZUYK
寫成prolog讓答案在輸入solve(X)的時候可以拿到X =犯人
我知道這題的方法是判斷次數,出現四次的statements就是答案了。
所以我寫了這樣:
solve(X) :-
member(X,[Alan,Brian,Charlie,Dave,Eddie,Freddie]),
(X = Alan -> (B=1,D=1,E=1);(B=0,D=0,E=0)),
(X = Brian -> (A=1,C=1);(A=0,C=0)),
(X = Charlie -> (B=1,D=1,E=1,F=1);(B=0,D=0,E=0,F=0)),
(X = Dave -> (A=1,E=1,F=1);(A=0,E=0,F=0)),
(X = Eddie -> (A=1,B=1,C=1);(A=0,B=0,C=0)),
(X = Freddie -> (C=1,D=1,E=1);(C=0,D=0,E=0)),
A+B+C+D+E+F=:=4.
但是他最後答案一直只有跑出false,有沒有人可以幫忙解答呢?

Links booklink

Contact Us: admin [ a t ] ucptt.com