用Python实现判断

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

甲说:王小红为班长,李强为生活委员.

乙说:丁金生为班长,王小红为生活委员.

丙说:李强为班长,王小红为学习委员.

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

用Python编程实现如下:

#p45.29
''' a1:王小红为班长
    a2:王小红为生活委员
    a3:王小红为学习委员
    b1:李强为班长
    b2:李强为生活委员
    c:丁金生为班长'''
for a1 in [0,1]:
    for a2 in [0,1]:
        for a3 in [0,1]:
            for b1 in [0,1]:
                for b2 in [0,1]:
                    for c in [0,1]:
                        if a1+b2==1 and c+a2==1 and b1+a3==1:#每个人只说对一半
                            if a1+a2+a3==1 and b1+b2==1:#每个人只能担任一个职位
                                if a1+b1+c==1 and a2!=b2:#不能有多个人担任一个职位
                                    if a1 == 1:#之后对结果进行翻译 
                                        print("王小红为班长")
                                    if a2 == 1:
                                        print("王小红为生活委员")
                                    if a3 == 1:
                                        print("王小红为学习委员")
                                    if b1 == 1:
                                        print("李强为班长")
                                    if b2 == 1:
                                        print("李强为生活委员")
                                    if c == 1:
                                        print("丁金生为班长")

之后得出结果为王小红为学习委员,李强为生活委员,丁金生为班长。(根据所问来确定原子命题,再根据条件对其进行限制)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值