离散数学——派谁出国问题

某公司要从赵、钱、孙、李、周五名新毕业的大学生中选派一些人出国学习。选派必须满足以下条件:
 (1)若赵去,则钱也去
 (2)李、周两人中必有一人去
 (3)钱、孙两人中去且仅去一人
 (4)孙、李两人同去或同不去
 (5)若周去,则赵、钱也去
 用等值演算法分析该公司如何选派他们出国。

代码如下:

# w3-1-p45-30.
# 某公司要从赵、钱、孙、李、周五名新毕业的大学生中选派一些人出国学习。选派必须满足以下条件:
# (1)若赵去,则钱也去
# (2)李、周两人中必有一人去
# (3)钱、孙两人中去且仅去一人
# (4)孙、李两人同去或同不去
# (5)若周去,则赵、钱也去
# 用等值演算法分析该公司如何选派他们出国。

# 设命题:
# a:派赵去
# b:派钱去
# c:派孙去
# d: 派李去
# e:派周去
# (1)若赵去,则钱也去        Q:(not a) or b
# (2)李、周两人中必有一人去   R:d or e
# (3)钱、孙两人中仅去一人    S:(b and (not c)) or ((not b) and c)
# (4)孙、李两人同去或同不去   M:(c and d) or ((not c) and (not d))
# (5)若周去,则赵、钱也去    N:(not e) or (a and b)
# list = ['不去','去']
result = {0:'不去',1:'去'}
for a in range(2):
    for b in range(2):
        for c in range(2):
            for d in range(2):
                for e in range(2):
                    if(b == 1 and c == 1): continue

                    Q = (not a) or b
                    R = d or e
                    S = (b and (not c)) or ((not b) and c)
                    M = (c and d) or ((not c) and (not d))
                    N = (not e) or (a and b)

                    A = Q and R and S and M and N

                    if A == 1:
                        print('赵{},钱{},孙{},李{},周{}'.format(result[a],result[b],result[c],result[d],result[e]))

               

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值