在某班班委选举中,已知王小红,李强,丁金生三位同学被选进了班委会。该班的甲,乙,丙三名学生预言如下。
甲说:王小红为班长,李强为生活委员。乙说:丁金生为班长,王小红为生活委员。丙说:李强为班长,王小红为学习委员。班委会分工名单公布后发现,甲乙丙三人都恰好猜对了一半,问王小红李强,丁金生各任何职。
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))