- 97 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:03:55 ]
- >>94
山根の証言が正しいことを前提にしてたのは、そうしないとヤマネも犯人になっちゃってたからw あと、not を使うのが怖いってどういう意味? ともかく、>>93を参考にしてもう一回問題を読み直して、ヤマネの証言に依存しないようにした truth(Is) :- % 単独犯である Is = [ [rabbit, g], [hatman, n], [yamane, n] ] ; Is = [ [rabbit, n], [hatman, g], [yamane, n] ] ; Is = [ [rabbit, n], [hatman, n], [yamane, g] ] . rabbit_says(Is) :- % ウサギの証言 member( [rabbit, n], Is ). % 俺はやってない hatman_says(Is) :- % 帽子屋の証言 member( [hatman, n], Is ). % 俺もやってない yamane_says(Is) :- % ヤマネの証言 ¥+( ( ¥+rabbit_says(Is), ¥+hatman_says(Is) ) ). %% ウサギと帽子屋の両方が嘘を言っていることはあり得ない more_research(Is) :- % その後の調査 ¥+( ( rabbit_says(Is), yamane_says(Is) ) ). %% ウサギとヤマネの両方の証言が真実だとはあり得ない solve(It) :- truth(It), more_research(It). ?- findall(It,solve(It),All). All = [[[rabbit, g], [hatman, n], [yamane, n]]].
|

|