在某次研讨会的中间休息时间,3 名与会者根据王教授的口音对他是哪个省市的, 判断如下:
甲:王教授不是苏州人;是上海人。
乙:王教授不是上海人,是苏州人。
丙:王教授既不是上海人,也不是杭州人。
听完这 3 人的判断后,王教授笑着说,你们 3 人中有一人说得全对,有一人说对了一半,另一人说 得全不对.试分析王教授到底是哪里人.
代码如下:
ls = [0, 1]
for su in ls: # 王教授是苏州人,0代表不是,1代表是
for shang in ls: # 王教授是上海人,0代表不是,1代表是
for hang in ls: # 王教授是杭州人,0代表不是,1代表是
if su + hang + shang == 1: # 王教授只能属于一个地方
jd = (shang == 1) # 当王教授为上海人时,甲完全正确
jz = (hang == 1) # 当王教授为杭州人时,甲说对一半
jc = (su == 1) # 当王教授为苏州人时,甲完全错误
yd = (su == 1) # 当王教授为苏州人时,乙完全正确
yz = (hang == 1) # 当王教授为杭州人时,乙说对一半
yc = (shang == 1) # 当王教授为上海人时,乙完全错误
bd = (su == 1) # 当王教授为苏州人时,丙完全正确
bz = (hang + shang == 1) # 当王教授为上海人或者杭州人时,丙说对一半
if (jd + yc + bz == 3) \
or (jz + yc + bd == 3) \
or (jc + yd + bz == 3) \
or (jc + yz + bd == 3): # 三人只能有一人对,一人错,一人对一半
print("苏州:{} 上海:{} 杭州:{}".format(su, shang, hang))