某公司要从赵,钱,孙,李,周五名新毕业的大学生中选派一些人出国学习,选派必须满足以下条件:
(1)若赵去,则钱也去
(2)李,周两人中必有一人去
(3)钱,孙两人中去且仅去一人
(4)孙,李两人同去或者同不去
(5)若周去,则赵,钱也同去
用等值演算法分析该公司如何选派他们出国。
解 设命题:
p:派赵去
q:派钱去
r:派孙去
s:派李去
u:派周去
上述公司选派条件分别表示:
Q: p→q
R: s∨u
S: (q∧¬r)∨(¬q∧r)
M: (r∧s)∨(¬r∧¬s)
T: ¬u∨(p∧q)
有公司选派条件:
A = Q∧R∧S∧M∧T
化简得到 A = (¬p∧¬q∧r∧s∧¬u)∨(p∧q∧¬r∧¬s∧u)
综上所述 共有两种选派方案:1.派孙、李去,而赵、钱、周不去
2.派赵、钱、周去,而孙、李不去
'''某公司要从赵,钱,孙,李,周五名新毕业的大学生中选派一些人出国学习,选派必须满足以下条件:
(1)若赵去,则钱也去
(2)李,周两人中必有一人去
(3)钱,孙两人中去且仅去一人
(4)孙,李两人同去或者同不去
(5)若周去,则赵,钱也同去
用等值演算法分析该公司如何选派他们出国。'''
#设命题: p:派赵去 q:派钱去 r:派孙去 s:派李去 u:派周去
#A 表示公司选派条件
for p in range(2):
for q in range(2):
for r in range(2):
for s in range(2):
for u in range(2):
#公司的五个选派条件(1)(2)(3)(4)(5)分别符号化且分别用Q R S M T表示
Q = (not p) or q
R = s or u
S = (q and (not r)) or ((not q)and r)
M = (r and s) or ((not r) and (not s))
T = ((not u) or (p and q))
#A 表示公司选派总判断
A = Q and R and S and M and T
if A == 1:#0 表示不去 1 表示去
print("是否派赵去{},是否派钱去{},是否派孙去{},是否派李去{},是否派周去{}".format(p,q,r,s,u))
运行结果:
是否派赵去0,是否派钱去0,是否派孙去1,是否派李去1,是否派周去0
是否派赵去1,是否派钱去1,是否派孙去0,是否派李去0,是否派周去1