观李永乐《皇帝的新衣》后感以及红蓝眼悖论解题思路
前言
写这篇博客不是主要的目的:
- 不是为了提供这题目的答案。
- 不是为了讲“共有知识”和“公共知识”的概念区别。
- 不是为了研究这道题目的悖论。
- 不是为了讲解这个题目怎么采用数学归纳法进行验证和解答。
以上不作为本文讲解内容的部分均可在互联网上找到详细的相关文档。
在看本文前需要了解,最好对上面的知识有个简单的了解或者印象,查阅一下相关资料。
本文将要讲解的内容:
作为一个村民的思维逻辑是怎样从接收到“旅行者”的信息(村里有红眼人)后,推理自己眼睛的颜色的整个完整心理过程。然后用文字的形式描绘出来。
引用
-
这道数学题悖论的原题目为《The blue-eyed islanders puzzle》,出自澳大利亚华裔数学天才–陶哲轩。
链接地址:https://terrytao.wordpress.com/2008/02/05/the-blue-eyed-islanders-puzzle/ -
李永乐老师《皇帝的新衣》视频链接:https://www.bilibili.com/video/av27732823/
-
原题目及其网上解答:
题目是这样的。说一个岛上有100个人,其中有5个红眼睛,95个蓝眼睛。这个岛有三个奇怪的宗教规则。
- 他们不能照镜子,不能看自己眼睛的颜色。
- 他们不能告诉别人对方的眼睛是什么颜色。
- 一旦有人知道了自己的眼睛颜色,他就必须在当天夜里自杀。(尊重博客原题,把原来的“知道自己是红眼睛”改成现在的“知道自己的眼睛颜色”)
注:虽然题设了有5个红眼睛,但岛民是不知道具体数字的。某天,有个旅行者到了这个岛上。由于不知道这里的规矩,所以他在和全岛人一起狂欢的时候,不留神就说了一句话:【你们这里有红眼睛的人。】
最后的问题是:假设这个岛上的人足够聪明,每个人都可以做出缜密的逻辑推理。请问这个岛上将会发生什么?
——————
主要的思路:此问题的第一个答案是用数学归纳法得出的:如果这个岛上有N个红眼睛,那么在旅行者说这句话的第N天,他们全部都会自杀。具体到本题则是,在第5天,这个岛上的5个红眼睛会全部自杀。(尊重原题,补:其他蓝眼睛在红眼睛集体自杀后,知道自己的眼睛颜色,也跟着自杀)
村民的内心世界:
从原题目中,我们了解到一个假设性前提,就是村里每个村民都逻辑缜密,思维灵活,而且村里每个人的智慧都一样高强。同时记得虔诚,不会说谎。
基于这个前提下,村民的逻辑思维过程是怎样的呢?
首先假设我们是村里的其中一个红眼的村民A,A一开始心理是这么想的:
- 我从出生不久就知道村里有红眼人
- 我见过红眼人,而且所有红眼人我都见过,我非常确定村里有4个红眼人。
- 但是我不知道村里实际有多少个红眼人,因为我不知道我的眼睛颜色,
- 假如我的眼睛是红色的,那么我就能非常确定村里有5个红眼人。
- 假如我的眼睛是蓝色的,那么我就能非常确定村里有4个红眼人。
- 大家都生活在同一个村庄,时间长了,我相信大部分都知道村里有红眼人。
- 但是我百分百确定,其它村民是否和我一样知道村里有红眼人。尤其是那4个红眼人。
- 日子就这样过着挺好的,大家不去提眼睛颜色的事情,毕竟知道关于眼睛颜色的信息越少,也就越是不可能有人能推理出眼睛的颜色了。条件越不够充分,关于眼睛颜色的问题也就越难解开了。
- 该死的是某一天大家被叫去广场送别一个多嘴的旅客时,旅客说了一句“村里竟然有和我一样是红眼睛的人”,之后所有村民都知道村里有红眼睛的人,同时全村人还紧张得四目相对,一下子大家都知道了一个事实——“村里有红眼睛的人,而且还知道了除了自己以外的红眼人的个数。”
- 那问题来了,这个信息是否会导致红眼的村民获得“充分的条件”,从而推理出自己的眼睛颜色?
两种可能的情况
- 我需要理一下,我需要知道这个信息是否会对村民造成影响?
第一种情况:
因为村民不能讨论关于眼睛的事情,如果这个信息对村民造成的影响只是思想上的影响,比如只是字面上的让村民得知有红眼人这一信息,那么我是无法感知的,也就等价于这一信息不会影响到任何一位村民。
第二种情况:
如果这一信息会导致村民得知自己眼睛颜色而导致死亡,那么这个信息我是可以感知的(我会看到村民死亡的时间、地点以及得知眼色的这一死因)。
- 第一种情况我不需要考虑,因为我无法感知的信息,不会影响我(不会影响,从而导致我得知眼睛的颜色)。我需要考虑的是第二次情况。
- 第二种情况,得知村里有红眼人,会导致有人死亡,这个假设如果成立。
第二种情况下的进一步推理:
推理出我的眼睛颜色会影响其它村民的死亡时间:
-
我怎么从中推理出我的眼睛颜色,换言之,假如我的眼睛是红色的话会怎样,不是红色的又会怎样。假如我的眼睛是红色的,会影响到其它人的死亡地点?不会!村里规定死亡地点在广场。会影响到他们的死因么?不会!死因永远只有一个,就是得知自己眼睛颜色。会影响死亡的时间么?会!村里规定在得知眼色后第二天中午自杀,具体哪一天的第二天自杀是无法得知的。而我的眼睛眼色很有可能会影响他们的死亡时间。
-
假如我的眼睛眼色不会对他们造成影响,那么就等价于,我无法从他们的死亡得知任何与我有关的消息了,那么我就没法进一步得知我的眼色,那么我就不可能会死了。同理,在其它村里也能成立,那么其它村民也就不会死了。如果没有村民死亡,这个结论显然和我们的假设矛盾,所以不成立。也就说我的眼睛眼色会对他们造成影响,而且影响到他们的死亡时间。
基于假设找到了研究方向,并建立简单的模型:
- 那么会对他们的死亡时间造成什么影响呢?关于这个问题,显然很复杂。我们能确定的是,假设“得知村里有红眼人”会造成死亡,那么肯定会有人死亡,而我的眼睛会造成他们的死亡时间,要么提早死亡,要么迟死亡。至于具体怎么影响我们一下子无法找出规律。因为一下子无法找出规律呢?规律过于复杂的原因是什么造成的?显然是人数,人数太多,我们需要推理出每一个人内心想法是一件困难的事情,但是我假设成立的情况下,所有村民的内心逻辑一定是有律可寻的。
第一模型, “村里有9个蓝眼人,1个红眼人”。
“假设”
就像黑夜中的指路人。
基于这个假设我们从简单的模型中找到了一个可能存在的、片面的、简单的规律,从简单的规律中,我们通过归纳找出普遍的归律。
有了基于假设成立得出普遍的规律,所以与假设对立的观点将会与普遍规律矛盾而被否定。
-
因为我们基于“得知村里有红眼人会造成村民死亡”的假设,将村民在人数少做减法,建一个最简单的模型“村里有9个蓝眼人,1个红眼人”。
-
“村里有9个蓝眼人,1个红眼人”就是基于假设而建立的一个片面的简单的规律模型。假如村里只有一个红眼人,红眼人得知“村里有红眼人”的信息以及“自己看到所有其它村民都是蓝眼”两条信息后就会推理出,自己的眼睛眼色是红色的。而村里的蓝眼人则会基于“红眼知道村里有红眼人”以及“红眼人能推理出自己眼睛是红色的并于第二天中午自杀”两点信息,推理出自己的眼睛不是红色。(如果蓝眼人在进一步借助“村里只有红蓝眼色”则也会得出自己是蓝眼人,并于第三天中午自杀),但是对蓝眼人来说,他是无法在第一天得出自己的眼色,而红眼人在第一天就能得出,因为“红眼人能推理出自己眼睛是红色的并于第二天中午自杀”必须要等待第二天才能知道。如果蓝眼人能确定“村里唯一的红眼人一定会在第二天自杀”,那么理论上蓝眼人也是可以当即在第一天便推理出自己的眼睛颜色,并在第二天一起自杀的,但问题在于如果万一【蓝眼人(以为自己是蓝色,其实不是的人)的眼睛不是蓝色的】,那么“红眼人”推理出自己眼睛眼色的第2个条件(“自己看到所有其它村民都是蓝眼“)将无法成立,从而导致红眼人不会在第二天自杀,所以蓝眼人仅能在第二天才能根据”红眼人是否自杀”来得知自己的眼睛颜色。
总结:“村里有9个蓝眼人,1个红眼人”,红眼人会在第2天中午自杀。
第二个模型,“村里有8个蓝眼人,2个红眼人”。
- 假如“村里有8个蓝眼人,2个红眼人”呢?显然红眼人不会在第二天中午自杀,因为红眼人的第二个条件“自己看到所有其它村民都是蓝眼“无法成立,无法成立即意味着,“村内第二天没有红眼人自杀”,且“村里不止1位红眼人”,又基于“红眼人自己只能看到1位红眼人”,所以综上3个条件,红眼人会在第二天知道自己的眼睛是红色的,并于“第三天中午两名红眼人一起自杀”。而蓝眼人看来,“村内第二天没有红眼人自杀”,且“村里不止1位红眼人”,这2个信息在第2天便可以得知,但是第3个条件“红眼人自己只能看到1位红眼人”却未必成立。如果【蓝眼人(以为自己是蓝色,其实不是的人)的眼睛不是蓝色的】,那么红眼人将看到村里除了自己以外仍有2个红眼的,而放弃第三天的中午的自杀行为。所以蓝眼人不确定自己是不是真的蓝眼人,所以得等待第三天中午,根据红眼人的自杀行为,来确定自己是蓝眼人。当然我们假设村里只有2个红眼人,所以第三天中午2个红眼人一定会自杀。
总结:“村里有8个蓝眼人,2个红眼人”,红眼人会在第3天自杀。
第三个模型,“村里有k个蓝眼人,3个红眼人”
-
从上面两个例子我们得出规律,村里有n个红眼人,红眼人会在第n+1天自杀。
-
我们得出的规律未必是正确的,我们试试“假设村里有3个红眼人”的例子是否成立:
假如“村里有k个蓝眼人,3个红眼人”呢?显然红眼人不会在第3天中午自杀,因为红眼人的第3个条件“红眼人自己只能看到1位红眼人“无法成立,无法成立即意味着,“村内第三天没有红眼人自杀”,且“村里不止2位红眼人”,又基于“红眼人自己只能看到2位红眼人”,所以综上3个条件,红眼人会在第3天知道自己的眼睛是红色的,并于“第4天中午3名红眼人一起自杀”。而蓝眼人看来,“村内第3天没有红眼人自杀”,且“村里不止2位红眼人”在第3天便可以得知,但是第3个条件“红眼人自己只能看到2位红眼人”却未必成立。如果【蓝眼人(以为自己是蓝色,其实不是的人)的眼睛不是蓝色的】,那么红眼人将看到村里除了自己以外仍有3个红眼的,而放弃第4天的中午的自杀行为。所以蓝眼人不确定自己是不是真的蓝眼人,所以得等待第4天中午,根据红眼人的自杀行为,来确定自己是蓝眼人。当然我们假设村里只有3个红眼人,所以第三天中午3个红眼人一定会自杀。
总结:“村里有k个蓝眼人,3个红眼人”,红眼人会在第4天自杀。
归纳出普遍规律:“村里有n个红眼人,红眼人会在第n+1天自杀”
-
从上面的第2个例子和第3个例子,我们可以归纳出一个结论,“村里有n个红眼人,红眼人会在第n+1天自杀”,我们知道第一个例子一定会成立,而我们的假说是一个笼统的假说,即“得知村里有红眼人,会导致有人死亡”,他的对立面是“得知村里有红眼人,不会导致有人死亡”。显然第一个例子和假说的对立面矛盾,并且我们从第1个例子、第2个例子和第3个例子归纳得出的一般规律也是和对立面矛盾。
-
所以假说的对立面是不成立,反过来证明假说是成立的,即“得知村里有红眼人,会导致有人死亡,且会在第n+1天中午n个红眼人会自杀“。
-
回到最初的观点,所有村民都知道其它村民都很聪明,逻辑敏捷,内心虔诚,所有村民都知道其它村民能得出一个结论 ——— “得知村里有红眼人,会导致有人死亡,且会在第n+1天中午n个红眼人会自杀”。
-
所以,所有村民都按照如下结论进行选择是否自杀:
如果自己能看到k个红眼人,那么第k+1天中午没人自杀,就证明自己是第k + 1红眼人,并于k + 2参与自杀。
如果k+1天中午所有能看到的红眼人都自杀了,那么就证明自己是蓝眼人,并于k+2天中午所有蓝眼人一起自杀。
村民们的最终下场:
- 村里有n个红眼人,当旅人再次与第n+1天回到村里,将看到:
所有村民都自杀身亡。
我们能从村民身上学到什么?
-
首先我们要肯定,不能学习村民那种愚蠢的虔诚。(我觉得是吧,但这一点不重要,我们不做讨论)
-
村民遇到复杂的问题的解决思路(“得知村里有红眼人,会不会导致有人死亡“?),然后村民作出了一个笼统的假设( 得知村里有红眼人,会导致有人死亡 ),基于假设建立一个简单模型和一个一定能成立的结论,从结论推理出普遍规律(如果找不出普遍规律,那么证明假设不成立)。用普遍规律否定了假设对立面(命题”得知村里有红眼人,不会导致有人死亡“不成立),从而使得原来的假设成立(命题”得知村里有红眼人,会导致有人死亡“成立),以及普遍的规律(村里有n个红眼人,红眼人会在第n+1天自杀)。
-
简单来说,我们可以学习村民的解题思路:
确定复杂问题 --> 提出笼统假说 -->
建立简单模型 --> 归纳一般规律–> 证明假说成立
–> 解决复杂问题。