诚实族和说谎族是来自两个岛屿的不同民族,已知诚实族的人永远说真话,而说谎族的人永远说假话。
一天,一个博士遇到三个人,知道他们可能是来自诚实族或说谎族的人。为了调查这三个人到底来自哪个族,博士分别问了他们问题,
下面是他们的对话:
博士问:“你们是什么族的?”
第一个人回答说:“我们之中有两个来自诚实族。”
第二个人说:“不要胡说,我们三个人中只有一个是来自诚实族的。”
第三个人接着第二个人的话说:“对,确实只有一个是诚实族的。”
那么问题来了。请根据他们的回答判断出他们分别是来自哪个族的?
下面直接上代码:
########################
if __name__ == "__main__":
#分别使用A、B、C代表第一个、第二个和第三个人,说谎对应的变量值为0,诚实对应的变量值为1
for A in range(2):
for B in range(2):
for C in range(2):
#逻辑判断条件
if ((A and A + B + C == 2) or (not A and A + B + C != 2))\
and ((B and A + B + C == 1) or (not B and A + B + C != 1))\
and ((C and A + B + C == 1) or (not C and A + B + C != 1)):
a = "诚实族" if A else "说谎族"
b = "诚实族" if B else "说谎族"
c = "诚实族" if C else "说谎族"
print("第一个人来自" + a )
print("第二个人来自" + b)
print("第三个人来自" + c)
########################
执行结果如下:
第一个人来自说谎族
第二个人来自说谎族
第三个人来自说谎族
________________END______________









网友评论