离散数学班委成员选举,王小红,李强,丁金生,python实现

在某班班委选举中,已知王小红,李强,丁金生三位同学被选进了班委会。该班的甲,乙,丙三名学生预言如下。

甲说:王小红为班长,李强为生活委员。乙说:丁金生为班长,王小红为生活委员。丙说:李强为班长,王小红为学习委员。班委会分工名单公布后发现,甲乙丙三人都恰好猜对了一半,问王小红李强,丁金生各任何职。

python代码如下:

###班委选举设p为王小红为班长,q丁金生为班长,r为李强为班长,
###a为李强为生活委员,b为王小红为生活委员,c为王小红为学习委员
for p in range(2):
    for q in range(2):
        for r in range(2):
            for a in range(2):
                for b in range(2):
                    for c in range(2):
                        if (p==1 and q==1): continue#一个职位只能由一个人担任 
                        if (p==1 and r==1): continue#一个人只能担任一个职位
                        if (q==1 and r==1): continue
                        if (a==1 and b==1): continue
                        if (p==c ):continue
                        A= (p and (not a)) or ((not p) and a)###甲说的话对一半
                        B=(q and (not b)) or ((not q) and b)###乙说的话对一半
                        C=(r and (not c)) or ((not r) and c)###丙说的话对一半
                        E=A and B and c###甲乙丙三人说的话各对一半
                        if E==1:
                            print("{},{},{},{},{},{}".format(p,q,r,a,b,c))


 

运行结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值