Help!求大神帮我用prolog编下这个挑战性的题目呗,不胜感激...
prolog吧
全部回复
仅看楼主
level 1
溪中水life 楼主
请用prolog编写:
有人邀请A,B,C,D,E,F6个人参加一项会议。已知:
1. A,B两人至少有1人参加会议。
2. A,E,F3人中有2人参加会议。
3. B和C两人决定,要么两人都去,要么两人都不去。
4. A,D两人中只1人参加会议。
5. C,D两人中也只要1人参加会议。
6.如果D不去,那么E也决定不去。
那么最后究竟有哪几个人参加了会议呢?
2013年10月20日 10点10分 1
level 1
溪中水life 楼主
我现在是用swi-prolog的
2013年10月20日 11点10分 2
level 1
今天刚学的,写的有点土,不过结果正常就行了。
rule(X):- member(a, X).
rule(X):- member(b, X).
rule(X):- member(a, X),member(b, X).
rule2(X):- member(a, X),member(e, X),\+member(f, X).
rule2(X):- member(a, X),member(f, X),\+member(e, X).
rule2(X):- member(e, X),member(f, X),\+member(a, X).
rule3(X):- member(b, X),member(c, X).
rule3(X):- \+member(b, X),\+member(c, X).
rule4(X):- member(a, X),\+member(d, X).
rule4(X):- member(d, X),\+member(a, X).
rule5(X):- member(c, X),\+member(d, X).
rule5(X):- member(d, X),\+member(c, X).
rule6(X):- \+member(d, X),\+member(e, X).
rule6(X):- member(d, X),member(e, X).
rule6(X):- member(d, X),\+member(e, X).
meeting(X,L):- me(X,L),rule(X),rule3(X),rule2(X),rule4(X),rule5(X),rule6(X).
me([A],L):- member(A,L).
me([A,B],L):- member(A,L),member(B,L).
me([A,B,C],L):- member(A,L),member(B,L),member(C,L).
me([A,B,C,D],L):- member(A,L),member(B,L),member(C,L),member(D,L).
me([A,B,C,D,E],L):- member(A,L),member(B,L),member(C,L),member(D,L),member(E,L).
输入meeting(What,[a,b,c,d,e,f]),结果就出来了。
2013年10月26日 13点10分 3
[你牛]
2013年11月02日 08点11分
level 9
  烟恋上了手指,
  手指却把香烟给了嘴唇,
  香烟亲吻着嘴唇,
  内心却给了肺,
  肺以为得到了香烟的真心,
  却不知伤害了自己!
  是手指的背叛成就了烟的多情,
  还是嘴唇的贪婪促成了肺的伤心……
  人生如烟,
  岁月无痕,
  烟自多情,
  却把自己烧的只剩下灰………
2014年01月13日 18点01分 11
1