首页 > 技术文章 > iOS面试的一个逻辑题

ChengYing-Freedom 原文

一个同行的朋友前往某公司面试,在笔试的最后一题,出了这么一个问题:(分值为20分)

  一个很古老的村子,这个村子的人分两种,红眼睛和蓝眼睛,这两种人并没有什么不同,小孩在没生出来之前,没人知道他是什么颜色的眼镜,这个村子中间有一个广场,是村民们聚集的地方,现在这个村子有三个人,分住三处,在这个村子,有一个规定,就是如果一个人能知道自己眼睛的颜色并且在晚上自杀的话,他就会升入天堂,这三个人不能够用语言告诉对方眼睛的颜色,也不能用任何方式提示对方的眼睛是什么颜色,而且也不能用镜子,水等一切有反光的物质来看到自己眼睛的颜色。当然,他们不是瞎子,他们能看到对方的眼睛,但就是不能告诉他,他们只能用思想来思考。

  于是他们每天就一大早来到广场上,面对面的傻坐着,想自己眼睛的颜色。

  一天天过去了,一点进展都没有。

  直到有一天,来个一个外地人,他到广场说了一句话,改变了他们的命运,他说,你们之中至少有一个人的眼睛是红色的,说完就走了。这三个人听了之后,又面对面的坐到晚上才回去睡觉,第二天,他们又来到广场,又坐了一天。当天晚上,就有两个人成功的自杀了。第三天,当最后一个人来到广场,看到那两个人没来,知道他们成功的自杀了,于是他也回去,当天晚上,也成功自杀了。

  根据以上,请说出先后自杀的三个人的眼睛的颜色,并说出推理过程。

当时朋友就是一脸懵逼的表情,面试个iOS需要这么复杂吗,然后迅速拍照发群里,让我们瞻仰一下现在的面试题。

闲来无事之下,便对这个逻辑题进行了解答。

 

首先是抓重点

1. 前面啰里啰嗦的一大堆话就是告诉我们:这个世界的规则就是这样,不管什么手段都不能搞清楚自己眼睛的颜色,只能思考。

2. ‘你们之中至少有一个人的眼睛是红色的’,这个意思很明显,红眼睛人数>=1

3. 接下来就是列逻辑了,假设这三个人分别是A,B,C。第二天自杀的是A,B。第三天自杀的是C。

这是每个人看到的东西,A可以看到B和C的眼睛,以此类推

A--->B + C

B--->A + C

C--->A + B

第一天:

无人自杀(判断:如果只有一个红眼睛,两个蓝眼睛,那么红眼睛看到其他两个人的颜色为蓝色,就立刻可以知道自己是红眼睛,在第一天的时候就会去自杀。结论:红眼睛人数>=2。(该条件被A,B,C三人同时判断出)

第二天:

A成功自杀,B成功自杀。(判断:A,B同时自杀成功,也就是A看到的条件跟B看到的条件相同,在第一天的结论下继续判断,如果A,B看到的都是红眼睛,那么A,B在这一天不能确定自己的颜色,不会自杀。结论:红眼睛人数=2,蓝眼睛人数=1,这里就直接可以得出结论,A,B为红眼睛,C为蓝眼睛(该条件被C判断出)

第三天:

C成功自杀。

 

最终就是

A(红)--->B(红) + C(蓝)

B(红)--->A(红) + C(蓝)

C(蓝)--->A(红) + B(红)

推荐阅读