【请教】 一个逻辑问题怎么用prolog解
prolog吧
全部回复
仅看楼主
level 1
想了好久,试了not和\+想做取反,但是这样好像只能判断是非。
问题:男:小明,小华,小凯。
女:小红,小芳。
这五个人中有两对夫妻
小明和小红不是夫妻
某一时刻, 不是夫妻的一男一女在超市
一对夫妻在家里
小华独自在家里
求谁和谁是夫妻?
我自己在纸上算出来有三种情况:1 小华和小红 小明和小芳
2 小华和小红 小凯和小芳
3 小华和小芳 小凯和小红
请问这怎么用prolog解决啊?先谢!
2015年12月11日 01点12分 1
level 13
%男:小明,小华,小凯。
man(xiaoming).
man(xiaohua).
man(xiaokai).
%女:小红,小芳。
woman(xiaohong).
woman(xiaofang).
%这五个人中有两对夫妻
spouse(Husband,Wife):-
man(Husband),
woman(Wife),
\+ notspouse(Husband,Wife).
%小明和小红不是夫妻
notspouse(xiaoming,xiaohong).
solve:-
%%这五个人中有两对夫妻
spouse(H1,W1),
spouse(H2,W2),
H1 \= H2,
W1 \= W2,
%某一时刻,不是夫妻的一男一女在超市
man(Man),
woman(Woman),
(Man,Woman) \= (H1,W1),
(Man,Woman) \= (H2,W2),
%一对夫妻在家里(假定H1,W1在家)
Man \= H1,
Woman \= W1,
%小华独自在家里
Man \= xiaohua,
H1 \= xiaohua,
write(H1:W1),nl,
write(H2:W2),nl,
nl,fail.
%运行程序
?- solve.
%结果
xiaoming : xiaofang
xiaohua : xiaohong
xiaokai : xiaohong
xiaohua : xiaofang
xiaokai : xiaofang
xiaohua : xiaohong
no
2017年06月13日 18点06分 2
1