题:三个逻辑学家去酒吧喝酒。侍者问是不是都喝啤酒。第一个逻辑家说“我不知道”。第二个也说“我不知道”。第三个说“是的”。
解读:如果逻辑学家不喝,会直接说“不是”。所以“我不知道”的意思是:不知道另外两位喝不喝。这里的布尔值就是三值:是的都喝(true)、不是都喝(false)、不知道。
请用python解题,需要完整代码。
题:三个逻辑学家去酒吧喝酒。侍者问是不是都喝啤酒。第一个逻辑家说“我不知道”。第二个也说“我不知道”。第三个说“是的”。
解读:如果逻辑学家不喝,会直接说“不是”。所以“我不知道”的意思是:不知道另外两位喝不喝。这里的布尔值就是三值:是的都喝(true)、不是都喝(false)、不知道。
请用python解题,需要完整代码。
因为都是逻辑学家,第一位和dier位不可能说是的,三位不可能都说不知道,请仔细思考判断不符合题意得情况
a = input("第一位回答:")
b = input("第二位回答:")
c = input("第三位回答:")
dct = {"不喝": 0, "是的": 1, "不知道": -1}
if dct[a]*dct[b]*dct[c] > 0: # 相乘大于零有111,喝-1-11两种情况都是全喝
print("true")
elif dct[a]*dct[b]*dct[c] == 0: # 相乘=0有000都喝,-100,0-10不都喝
print("false")
else: # 不知道的情况不存在因为第三位逻辑学家总能由前面两人的回答判断喝还是不喝
print("不知道")