zoukankan      html  css  js  c++  java
  • iOS面试的一个逻辑题

    一个同行的朋友前往某公司面试,在笔试的最后一题,出了这么一个问题:(分值为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(红)

  • 相关阅读:
    drf 权限流程解析
    drf 认证流程解析
    drf 版本解析
    Django REST framework初识
    RESTful规范
    Flask框架
    Flask框架解析目录
    hdu
    hdu 6113 度度熊的01世界(结构体的赋值问题)
    hdu 6114 chess(排列组合)
  • 原文地址:https://www.cnblogs.com/ChengYing-Freedom/p/8257847.html
Copyright © 2011-2022 走看看