离散数学班委成员选举,王小红,李强,丁金生,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))


 

运行结果:

你可能感兴趣的:(python)