“红眼人与蓝眼人”是一道很好的逻辑推理题,题目如下:

在一个与世隔绝的小岛上住着100个村民,每个人的眼睛可能是红色或者蓝色。已知:

1.他们可以看到别人眼睛的颜色,却没有镜子、水等物体通过反射来得知自己眼睛的颜色。

2.村民之间不能互相交流。

3.每天早上村民们会汇聚在岛中央的广场静坐,思考自己眼睛的颜色。若一个人得知自己的眼睛是红色后,当天晚上便会在家中自杀。这样便可以升入天堂。

村民们平安无事地相处了很久。突然有一天早上,岛上来了一个旅行家,在村民静坐时对所有人说了一句话:

“你们中至少有一个是红眼睛的。”

说完便离开了。

当天晚上,什么事也没发生。到了第二天晚上,仍旧什么事也没发生。直到第三天晚上,突然有三个村民自杀了。

请问第四天晚上会发生什么?为什么?

答案很简单,第四天相安无事,因为如果总共有N个红眼人,他们都会在第N天晚上发现自己是红眼并自杀。

推理过程:

1.假设总共有1个红眼人,他眼中看到的是99个蓝眼,但无法确定自己眼色。听完旅行者的话后就明白自己的眼色了,所以第一晚会自杀。

2.假设总共有2个红眼人,他们眼中均是98个蓝眼和1个红眼,以其中任意一个红眼人的角度看,仅存在两种情况(1)自己是红眼,一共2个红眼98个蓝眼(2)自己是蓝眼,一共1个红眼99个蓝眼。第一天听完旅行者的话后仍然无法判断自己的眼色。但如果是情况(2),那么那个唯一的红眼第一天晚上就会自杀(参考推理步骤1.)。因此如果第一天晚上平安无事的话,则是因为对方也无法确定自己的眼色(因为对方眼里不是99个蓝眼),所以可以确定自己是情况(2)中的2个红眼其中之一,所以会在第二天晚上自杀。两人均会如此。

3.假设总共有3个红眼人,以此类推可知都会在第三天晚上集体自杀。如果有N个红眼人,则他们会在第N天晚上集体自杀。

推理过程看似不难理解,但深究一下会发现有些地方还没弄清。比如说,旅行者这句话到底起到什么作用?就此题而言,对于每个岛民来说,旅行者说了一句“废话”:本来每个岛民眼里就看到了不止一个红眼人。这道题推理过程的触发条件到底是什么?

网上看到很多解释,比较多的想通过信息量。比如http://www.acfun.tv/a/ac719743里写的,旅行者来之前每个岛民掌握的是“除我之外剩下的99个人中有红眼人”,而旅行者来之后每个岛民掌握的信息变成“包括我在在内的100个人中有红眼人”,所以触发了推导过程。细心一想发现其实不对,前者其实是肯定可以推出后者的,即“除我之外剩下的99个人中有红眼人”肯定可以推断出“包括我在在内的100个人中有红眼人”,也就是说按照该逻辑旅行者的话仍然没有给推理提供任何信息。

还有解释说旅行者的话让每个村民都明白了自己可以根据其他人的行为来判断自己眼睛的颜色,或者干脆解释成题目暗含了“思考眼睛颜色”这个行为从旅行者登岛之后开始的条件,都比较牵强。

其实真正理解推导过程之后就会发现,旅行者的话并不是一句废话。那触发点到底是在什么地方呢?我们从结论“N个红眼人会在第N天晚上集体自杀”出发。

从这N个红眼人中任意一个的第一人称来看(目前总共N个红眼):我看到有N-1个红眼,但我一直无法确定自己的眼色。只有等到第N-1天晚上过后发现他们都平安无事,才能肯定我是红眼,否则我就是蓝眼。为什么?因为我可以肯定,假设这N-1个红眼每个人的眼里都是只有N-2个红眼(即我不是红眼,总共有N-1个红眼)的情况下,他们肯定会在N-1天晚上集体自杀。为什么他们会这么乖?因为他们中的每个人都会以第一人称视角这样想(目前总共N-1个红眼):我现在看到N-2个红眼,我无法判断自己的眼色,只有等到第N-2天晚上过后发现这N-2个红眼都平安无事时,我才能确定我自己是红眼。为什么可以通过这N-2个红眼的行为来判断?因为假设只有这N-2个红眼(即我不是红眼,总共有N-2个红眼)的情况下,他们中的每个人都会以第一人称这么想:。。。。。。假设总共有2个红眼的情况下,则他们之中的任何一个都会这么想:我现在看到1个红眼,我无法判断自己的眼色,只有等到第1天晚上过后发现这1个红眼平安无事时,我才能确定自己是红眼。

由此到了推论最关键的假设仅有一个红眼的情况:旅行者的这句话在仅有一个红眼人的情况下,保证了该红眼人做出以下决定:如果眼里没有蓝眼人,则第一晚自杀;如果有蓝眼人,则无法确定自己眼色不自杀。如果旅行者不说这句话,则在仅有1个红眼人的情况下那个红眼人因无法判断自己的眼色不会自杀,无法满足后面的递归推论,也推不出如果有N个红眼人会第N天晚上集体自杀这个结论。

饶了这么多,再反过来推一次就发现旅行者的话的作用了:“至少一个红眼人”让总共仅有1个红眼人的情况下,那个红眼人能在第一天晚上顺利自杀,从而满足总共仅有2个红眼人时那2人可以通过对方的反应来正确判断自己的眼色,从而保证总共有3个红眼人时可以正确判断自己的眼色。。。。

所以,这句话并不是废话,它触发了仅有一个红眼人时该红眼人的行为,从而作为所有后续推理的基石。

“红蓝眼人”问题中旅行者说的话的作用相关推荐

  1. 观李永乐《皇帝的新衣》后感以及红蓝眼悖论解题思路

    观李永乐<皇帝的新衣>后感以及红蓝眼悖论解题思路 前言 写这篇博客不是主要的目的: 不是为了提供这题目的答案. 不是为了讲"共有知识"和"公共知识" ...

  2. 【趣题】红蓝眼岛居民自杀事件

    然而并不是<名侦探柯南> 这是本人刷知乎刷到的,非常有意思. 原回答中,知友说是在陶哲轩的博客中看到的.有人见到他还请帮忙问一下可不可以写这篇博客 知友:因为长期浏览某 不良 网站,喜欢 ...

  3. 那个丧心病狂的红蓝眼睛逻辑问题推理:第N天有N个红眼睛自杀,还是什么都不会发生?

    题目设定是这样的,一个岛上有100个人,其中有5个红眼睛,95个蓝眼睛.这个岛有三个奇怪的宗教规则. 1. 他们不能照镜子,不能看自己眼睛的颜色.  2. 他们不能告诉别人对方的眼睛是什么颜色.  3 ...

  4. 2019华为性格测试题_小红书达人力荐!华为 Mate20 Pro红蓝新色最懂女人心

    1月10日,华为在北京三里屯CHAO酒店举行了一场与众不同的发布会,这次发布会的主题是"红蓝知己",发布了华为Mate 20 Pro的两款新配色--馥蕾红.璨星蓝,而这两款新配色也 ...

  5. 红蓝对抗 linux内网渗透

    目录 一.前言 二.提权 2.1 利用内核漏洞进行提权 2.2 利用文件权限配置不当进行提权 2.3 利用SUID程序进行提权 三.隧道 3.1 SSH 3.2 nc/ncat 3.3 portmap ...

  6. c++游戏代码坦克大作战_一红一蓝多种模式的双人小游戏:红蓝大作战

    作者有话说:上次推荐的森林冰火人很多小伙伴后台找我要链接,或者搜索不到:首先声明下森林冰火人.同桌大作战都不是辣椒人游戏工作室研发的,小编也是微信小游戏双人栏目下搜索到的,如果想要玩双人小游戏的可以打 ...

  7. 红蓝眼睛逻辑问题推理

    题目设定是这样的,一个岛上有100个人,其中有5个红眼睛,95个蓝眼睛.这个岛有三个奇怪的宗教规则. 1. 他们不能照镜子,不能看自己眼睛的颜色.  2. 他们不能告诉别人对方的眼睛是什么颜色.  3 ...

  8. 红蓝对抗场景下的二三事

    背景 未知攻焉知防,警察想要抓小偷,就该先摸透小偷的想法,才能更快捷的抓到小偷毕竟小偷抓小偷更容易.网络安全的攻与防,好比"矛"与"盾",要想不被"矛 ...

  9. 制作立体图像(上):红蓝眼镜原理

    立体眼镜分为色差式.偏光式等几种 其中色差式还可以再分为红-蓝.红-绿.红-青等,是最简单,但也是效果最差的一种 这里仅介绍常见的红蓝立体图像 这种方式仅需要一块红蓝眼镜,淘宝上买个很便宜的就可以了, ...

最新文章

  1. 前端开发js运算符单竖杠“|”的用法和作用及js数据处理
  2. 开发日记-20190803 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 19
  3. Oracle索引失效问题
  4. 在Win8中创建热点,共享网络
  5. 怎么关闭左下角的GL VERTS
  6. 作者:祝天刚(1988-),男,中国科学院大学硕士生。
  7. 将信息从个人计算机传递到中央,上载-常识-工控百科-工控家
  8. 码农们的聚餐,会复杂到什么程度?
  9. SYN Flood应如何应对
  10. 了解Go编译处理(一)—— go tool
  11. 【JVM】17、垃圾回收器
  12. TDengine 荣获 CSDN IT 技术影响力之星 “年度开源项目” 、 “年度IT领军人物”奖项
  13. CANopen协议基础知识
  14. 284、超详细的光纤熔纤、盘纤教程,值得收藏
  15. docker: error pulling image configuration
  16. 淘宝商品SKU接口、DESC信息、淘宝产品详情API
  17. 【Makefile】strip
  18. bzoj3875 骑士游戏 最短路
  19. 计算机专业省赛一等奖有什么好处,省技能大赛一等奖好处有什么
  20. Qt 使用Visa库与数字仪器仪表TCP/IP通信(SCPI指令自动化测试)

热门文章

  1. CodeForces 964A Splits
  2. 使用jsp实现用户注册及登录
  3. 汇编语言中sbb是什么意思_汇编语言里 sub是 什么功能?
  4. python无法打开微信登录_如何让你的微信登录界面地球转起来(利用python实现)...
  5. 钢琴五线谱 学习分享(兴趣爱好)
  6. 怎样快速实现两台电脑硬盘文件共享?
  7. Python Crash Course读书笔记 - 第19章:USER ACCOUNTS
  8. SQL学习之now()函数
  9. CCF系列题解--2018年3月第三题 URL映射
  10. java 锟斤 解决乱码_java eclipse 开发中文乱码锟斤拷小锟斤拷锟