离散数学课后习题:班委选举,王小红,李强,丁金生各任何职?

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

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

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

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

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

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

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

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

    丙说:李强为班长,王小红为学习委员。
班委会分工名单公布后发现,甲、乙、丙三人都恰好猜对了一半。问:王小红、李强、丁金生各任何职(用等值演算求解)?'''
'''
设命题:
    a:王小红为班长 b:李强为生活委员
    c:丁金生为班长 d:王小红为生活委员
    e:李强为班长   f:王小红为学习委员
    甲、乙、丙三人的判断分别用Q R S表示:
'''

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):
                    for f in range(2):
                        if (a == 1 and c == 1): continue
                        if (a == 1 and d == 1): continue
                        if (a == 1 and f == 1): continue
                        if (b == 1 and d == 1): continue
                        if (b == 1 and e == 1): continue

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

                        E = Q and R and S

                        if E ==1:
                            if a ==1:
                                print("王小红为班长")
                            elif d == 1:
                                print('王小红为生活委员')
                            else:
                                print('王小红为学习委员')


                            if c == 1:
                                print('丁金生为班长')
                            if e == 1:
                                print('李强为班长')
                            if f == 1:
                                print('李强为生活委员')
#如果只显示了两个人的,那另一个人的职位就是剩下那个职位
王小红为学习委员
丁金生为班长
李强为生活委员

Process finished with exit code 0

综上所述:丁金生为班长

                  王小红为学习委员

                  李强为生活委员

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值