眼睛的颜色 博弈

  其实也不能算是OI知识了,就当是体会了一下数学归纳法吧。。

此问题最早据说是澳大利亚的华裔数学神童陶哲轩在网上贴出来让大家思考,逗大家玩儿的。
题目是这样的。说一个岛上有100个人,其中有5个红眼睛,95个蓝眼睛。这个岛有三个奇怪的宗教规则。
1. 他们不能照镜子,不能看自己眼睛的颜色。
2. 他们不能告诉别人对方的眼睛是什么颜色。
3. 一旦有人知道了自己的眼睛颜色,他就必须在当天夜里自杀。(尊重博客原题,把原来的“知道自己是红眼睛”改成现在的“知道自己的眼睛颜色”)
注:虽然题设了有5个红眼睛,但岛民是不知道具体数字的。

某天,有个旅行者到了这个岛上。由于不知道这里的规矩,所以他在和全岛人一起狂欢的时候,不留神就说了一句话:【你们这里有红眼睛的人。】

最后的问题是:假设这个岛上的人足够聪明,每个人都可以做出缜密的逻辑推理。请问这个岛上将会发生什么?

回答:  

此问题的第一个答案是用数学归纳法得出的:如果这个岛上有N个红眼睛,那么在旅行者说这句话的第N天,他们全部都会自杀。具体到本题则是,在第5天,这个岛上的5个红眼睛会全部自杀。(尊重原题,补:其他蓝眼睛在红眼睛集体自杀后,知道自己的眼睛颜色,也跟着自杀)。

证明过程如下:

如果这个岛上只有1个红眼睛,其他人都是蓝眼睛。那么,当旅行者说了这句话之后,此人立刻就会知道自己是红眼睛,他就会在当天自杀。即,当n取第一个值n0=1时,命题成立。

假设当这个岛上有N个红眼睛的时候,在旅行者说了这句话之后的第N天,这些红眼睛会全部自杀。

那么,当这个岛上有N+1个红眼睛的时候,在每个红眼睛看来,岛上都确定有N个红眼睛,并等待着他们在第N天自杀。而在第N天,大家都没有自杀。所以一到第N+1天,每个红眼睛都明白了这个岛上还有第N+1个红眼睛——他自己。于是大家都在第N+1天自杀了。

所以命题得证:如果这个岛上有N个红眼睛,那么在旅行者说这句话的第N天,他们全部都会自杀。

如果上述证明还让人有疑惑的话,也可以改用穷举法来证明。

当岛上只有一个红眼睛的时候,在旅行者说完这句话的当天,他就会自杀。这个无疑。

当岛上有两个红眼睛的时候。在旅行者说完这句话的当天,这两个红眼睛都在等着对方自杀,但对方却没有自杀。于是在第二天他们立刻明白了自己也是红眼睛,于是在第二天一起自杀了。

以此往下推理,当岛上有三个红眼睛的时候。旅行者说完这句话,每个红眼睛都在等着第二天另外两个红眼睛集体自杀,但他们没有自杀。所以到了第三天,大家都明白了自己也是红眼睛,就一起自杀了。

如此类推下去。就得出了命题:如果岛上有N个红眼睛,那么在旅行者说完这句话后的第N天,这个N个红眼睛会一起自杀。具体到本题就是,到了第五天,这五个红眼睛一起自杀。

但是,
陶哲轩说,这个旅行者事实上讲了一句废话,没有带来任何新的信息。因为这岛上有95个蓝眼睛,5个红眼睛。每个人都知道这岛上有红眼睛的人。无非是蓝眼睛的人看到有5个红眼睛,红眼睛的人看到有4个红眼睛而已。旅行者说的那句【岛上有红眼睛的人】,没有输入任何新的信息,他说的就是岛上的人每天都看到的景象。所以哪怕岛上的人思维再缜密严谨,也不会有任何自杀的情况发生。

推理见以下文段:

作者:张石敧 链接:https://www.zhihu.com/question/21262930/answer/17690897 来源:知乎 著作权归作者所有

「游客没有输入任何新的信息」这个断言是错的。

N=1的情形不必说了,显然输入了新信息。

对于N>1的情形,要注意,游客必须是当着所有人的面公开做出宣告,如果他是私下分别对每个人说的,就不会起任何作用。「公开宣告」这一举动的意义不是让每个人都知道「岛上有红眼睛」,而是让每个人都知道「每个人都知道每个人都知道……每个人都知道岛上有红眼睛」。在游客公开宣告之前,岛上的人是不可能具有这个多阶知识的,这就是游客输入的新信息。

以N=2为例,公开宣告之后,红1立刻获得了一个新的2阶知识:「红2知道岛上有红眼睛」,在公开宣告之前,他没有能力判断这个2阶命题的真假,因为在这之前命题的真假依赖于红1自己的眼睛颜色。同样,红2也获得了新知识「红1知道岛上有红眼睛」。

N=3时,公开宣告使得红1立刻获得了一个新的3阶知识:「红2知道红3知道岛上有红眼睛」,在此之前,这个3阶命题的真假也是依赖于红1自己的眼睛颜色(红则为真,蓝则为假)。同样,红2和红3也获得了类似的知识。

N=4,5,6,...依此类推。

简单说,「岛上有红眼睛」这件事本来只是一项「共有知识」(Mutual knowledge),公开宣告使它变成了一项「公共知识」(Common knowledge)。这两种知识的区分在认知逻辑里面非常重要,在博弈论中有广泛的应用。

用不严谨的话粗略介绍一下这两个概念:对于一个给定的命题P和一群给定的人,共有知识只需要满足一个条件:这群人中所有人都知道P,那么P就是这群人的共有知识。
公共知识则需要满足以下所有条件:
这群人中
1、所有人都知道P;
2、所有人都知道所有人都知道P;
3、所有人都知道所有人都知道所有人都知道P;
4、所有人都知道所有人都知道所有人都知道所有人都知道P;
5、……
一直下去,直到无穷。要同时满足这无穷多个条件,才能说P是这群人的公共知识。

========
看到有些人还是不明白为什么公开宣告之前没有人自杀,为什么宣告之后就会自杀了,以及为什么要等到第N天才自杀。以下就用N=4为例来分析一下,希望能有助于理解(但也有可能让人绕得更晕)。
设4个红眼岛民分别为A, B, C, D,以下是A心中做出的推理:

我看到3个红眼,这可以划分成一共5种情况:
1、我是红的;
2、我是蓝的,且B自认为是红的;
3、我是蓝的,且B自认为是蓝的,且B认为C自认为是红的;
4、我是蓝的,且B自认为是蓝的,且B认为C自认为是蓝的,且B认为C认为D自认为是红的;
5、我是蓝的,且B自认为是蓝的,且B认为C自认为是蓝的,且B认为C认为D自认为是蓝的。

假如没有游客来公开宣告「岛上有红眼」,那么A永远无法判断上述哪一种是真的。由于岛上所有人都做出同样的推理(蓝眼岛民推出的情形多一种),所以每个人都无法判断自己眼睛的颜色,大家都不用去死。
而一旦公开宣告「岛上有红眼」,A立刻知道「B知道C知道D知道岛上有红眼」,因此可以立刻排除5;当晚没人死,因此第二天可排除4;第三天排除3;第四天排除2只剩下1,因此A在第四天晚上自杀。B, C, D也都做出完全一样的推理,所以也都在第四天晚上自杀。

====补充====

有人提到,这道题的一个必要前提是岛上的人要完全信任这个游客。这很对,但还不够。不仅每个人都要相信该游客,而且还必须每个人都知道每个人都知道……每个人都知道每个人都相信该游客。即「游客完全可信」这件事本身也必须是一个公共知识。只有这样,游客的宣告才会具备使共有知识转变为公共知识的力量。

====补充2====

从小到大,我们一次又一次地被旁人这样教训:「嘘,别说了,小心点。况且这种事谁不知道啊,还要你说?说出来又有什么用呢?你有力量改变它吗?」久而久之,我们越来越习惯于把「你懂的……」挂在嘴边,习惯于对房间里的大象视而不见,选择性遗忘了一个我们其实早就知道的重要事实:「大声说出来」跟「彼此心照不宣」有着决定性的区别。我们不是没有力量。一条恰当的宣言,哪怕它的内容只不过是「我知道」这么简简单单的一句话,也有可能引起整个社会的信念结构的根本改变,让许许多多人断然行动起来。这就是我们每一个人的力量。

拓展:

  关于红眼睛蓝眼睛自杀问题,陶哲轩教授又问:旅者如何挽回自己说的话?

  关于红眼睛自杀问题的引申,如果在自杀日到来之前有红眼睛自然死亡,会怎样?

思考:

  这个问题在现实中有哪些应用场景?

时间: 2024-12-05 10:09:15

眼睛的颜色 博弈的相关文章

眼睛的颜色

 眼睛的颜色 返回首页 发布公司: 有 效 期: 赛    区: CSDN 2014-04-30至2015-04-30 北京 难 度 等 级: 答 题 时 长: 编程语言要求: 120分钟 C C++ Java C# 题目详情 一个岛上有n个人,每个人的眼睛要么是蓝色的,要么是黑色的,并且至少有一个人眼睛是蓝色的.每个人都知道至少一个人眼睛是蓝色的事实,但是不知道具体几个人眼睛是蓝色的.每天所有人互相见面,他们可以看到别人的眼睛的颜色,但是看不到自己眼睛的颜色.别人也不能告诉他眼睛的颜色.如

win7保护眼睛的颜色设置方法

1:在电脑桌面空白处点击右键“个性化”按钮 2:在弹出的对话框单击“窗口颜色” 3:在弹出的新的对话框中单击“高级外观设置” 4:在弹出的窗口颜色和外观中,将项目选为“窗口”颜色选为其他,进入到颜色选择 5:在颜色中将色调调整为85:饱和度调整为125,亮度调整为205,点击添加到自定义颜色中 6:此时,颜色被添加到自定义颜色中,点击确定 这样我们的窗口区域就能变成护眼的颜色了

[转]保护眼睛的Windows和IE、Firefox、谷歌等浏览器颜色设置

保护眼睛的Windows和IE.Firefox.谷歌等浏览器颜色设置  长时间在电脑前工作,窗口和网页上的白色十分刺眼,眼睛很容易疲劳,也容易引起头痛,其实我们可以通过设置Windows窗口和软件的颜色设置保护自己的眼睛,总结网上的设置,自己觉得下面是最优的颜色设置方案.眼科专家建议保护眼睛的颜色为:色调:85,饱和度:123,亮度:205.这个颜色就是柔和的豆沙绿色,这个颜色看着眼睛不会那么疲劳. Windows眼睛保护色设置步骤: 右击"桌面"-->"属性"

保护你的眼睛,从设置电脑护眼模式开始

Win7保护眼睛的颜色设置方法Win7操作系统的设置原理和XP是差不多的,只是设置的方法有点不同,具体如下:第一步:桌面空白处右键 ->个性化 >窗口颜色 -> 高级外观设置 第二步:窗口颜色与外观 ->点击项目下拉框选择“窗口”,点击“颜色1(L)”处的选择(其它) 第三步:将色调改为:85,饱和度:90,亮度:205,添加到自定义颜色,在自定义颜色选定点这个颜色一路点击确定 这样所有的文档都不再是刺眼的白底黑字,和XP的设置方法是一样的.

在JavaScript中生成自定义的对象

使用对象便于组织信息.下面我们介绍如何在JavaScript中生成自定义的对象. ---------------------- JavaScript 对象 在前面几章中我们学到JavaScript中有些内置的对象,比如String, Date, Array等等.除此之外,你还可以定义自己的对象. 对象是一种特殊的数据,含有属性和函数. 下面让我们用一个例子来说明:比如一个人是一个对象.属性是与对象有联系的值,比如人的属性包括姓名,身高,体重,年龄,肤色,眼睛的颜色等等.所有人都有这些属性,但是每

无能的力量 -- 《看见》

卢安克坐在草地上,七八个孩子滚在他怀里,打来打去. 我本能地拉住打人孩子的手:"不要这样." "为什么不要这样?" 我就差点说"阿姨不喜欢这样"了,绷住这句话,我试图劝他们:"他会疼,会难受." "他才不会."他们"嘎嘎"地笑,那个被打的小孩也乐. 卢安克坐在小孩当中,不作声,微笑地看着我无可奈何的样子. 后来我问他:"我会忍不住想制止他们,甚至想要去说他们,这是我的第一个反应

机器学习原来如此有趣:用深度学习识别人脸

本系列文章目前已经更新两期,分别是: 机器学习原来如此有趣!全世界最简单的机器学习入门指南. 机器学习原来如此有趣:如何故意欺骗神经网络 你是否有注意到Facebook最近开发了一个非同寻常的功能:将你照片中的好友识别出来.过去,Facebook 让你手动点击照片上的好友,输入他们的名字,然后加上标签.现在只要你上传一张照片,Facebook就会像变魔术一样为你自动标记出所有人: 这项技术就叫做人脸识别.在你的朋友的脸被标记了几次之后,Facebook的算法就可以识别他了.这是一个让人惊艳的技术

perl 引用

不管是从理论还是实践的角度出发, Perl 都是偏爱平面线性的数据结构的. 假设你想制作一个二维数组, 显示一组人员的生理数据. 包括年龄.眼睛的颜色和重量等. 可以通过先给每一个独立的成员创建一个数组来实现. my @john = (47, "brown", 186); my @mary = (23, "hazel", 128); my @bill = (35, "blue", 157); 然后你就可以构造一个附加的数组, 该数组由其他数组的名

套退诵沦铀y7w4urwp444r4

霍雨浩的眼睛亮了起来,淡金色的光芒虽然并不明显,但王言却清楚的看到了.但是,对于魂师来说,释放武魂的时候眼睛发生颜色变化是再正常不过的情况.王言也看到霍雨浩脚下那一圈看似单薄的白色魂环又出现了,但他却依旧看不出霍雨浩的武魂是什么.同时发动的还不止他一个人,那位名叫青枫的控制系战魂宗和辅助系器魂宗唐妞妞也同时出手了."日月大陆的魂导器为什么能够发展的那么好?除了他们耐心研究之外,最主要的原因就是资源.在日月大陆上,有许多珍稀的金属矿藏.正是凭借这些珍稀金属.他们才能够制造出品质绝佳的魂导器.几千年