[問題] 一題Prolog

看板Programming作者 (也無風雨也無晴)時間11年前 (2014/08/15 18:25), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/2 (看更多)
題目是 要將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,有沒有人可以幫忙解答呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.50.214.198 ※ 文章網址: http://www.ptt.cc/bbs/Programming/M.1408098343.A.24C.html

08/15 20:48, , 1F
BC兩人的條件格式和其它人不一樣耶
08/15 20:48, 1F

08/15 20:48, , 2F
有什麼特殊原因嗎
08/15 20:48, 2F

08/16 08:16, , 3F
因為我是用如果A是犯人的話,則BDE說謊
08/16 08:16, 3F

08/16 08:16, , 4F
這個想法去寫的,不知道是不是整個錯了
08/16 08:16, 4F

08/16 08:33, , 5F
then 的部份是對的, 但是就算 X 不是 Alan,
08/16 08:33, 5F

08/16 08:33, , 6F
還是不能確定 B=0: 如果 X=Charlie 呢?
08/16 08:33, 6F

08/16 08:34, , 7F
BTW, X=Alan 應該是 B=1,D=1,*F*=1
08/16 08:34, 7F

08/16 09:57, , 8F
好的,我等等在改改看@@"
08/16 09:57, 8F

08/16 10:01, , 9F
else的部分要怎麼修正呢..
08/16 10:01, 9F
文章代碼(AID): #1JxU0d9C (Programming)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
1
9
文章代碼(AID): #1JxU0d9C (Programming)