用Python实现派谁出国学习(离散数学 p45 30)

一、题目

某公司要从赵、钱、孙、李、周五名新毕业的大学生中选派一些人出国学习,选派必须满足以下条件:

(1)若赵去,则钱也去

(2)李、周两人中必有一人去

(3)钱、孙两人中去且仅去一人

(4)孙、李两人同去或同不去

(5)若周去,则赵、钱也同去

试分析该公司如何选派他们出国。

二、代码实现

ls=[0,1]
#p,q,r,s,t分别表示派赵,钱,孙.李,周出国学习
for p in ls:
    for q in ls:
        for r in ls:
            for s in ls:
                for t in ls:
                    A=(not p) or q #表示(1):若赵去,则钱也去
                    B=s or t #表示(2):李,周两人中必有一人去
                    C=(q and (not r)) or ((not q) and r) #表示(3):钱,孙两人中去且仅去一人
                    D=(r and s) or ((not r)and(not s)) #表示(4):孙,李两人同去或同不去
                    E=(not t) or (p and q) #表示(5):若周去,则赵,钱也同去
                    F=A and B and C and D and E
                    if F ==1:
                        print("派赵出国学习:{},派钱出国学习:{},派孙出国学习:{},派李出国学习:{},派周出国学习:{}".format(p,q,r,s,t))

代码部分说明:(1)中的“若赵去,则钱也去”可符号化为“p→q”,“p→q”等价为“┐p∨q”,(5)同理

运行结果:

 从运行结果来看,有两种选派方案:第一种,派孙、李出国学习。第二种,派赵、钱、周出国学习。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值