|
导读
一个蓝眼睛岛问题,能引出十个层次的思考,真是非常惊人。第一个层次是,用数学归纳法证明n个蓝眼人会在n天后一起自杀。第五个层次是:游客到底有没有带来新信息?回答是:确实有!这里是蓝眼睛岛问题真正的困难所在。请仔细想想,你思考到了哪个层次?
作为一个教师,我最近的一项教学活动,就是给同学们讲解一个著名的逻辑问题“蓝眼睛岛问题”。这个问题来自当代的天才数学家、菲尔兹奖获得者陶哲轩。在2018年8月16日和23日,我做了两期“科技袁人”视频节目来详细解读蓝眼睛岛问题(B站视频见https://www.bilibili.com/video/av29527174和https://www.bilibili.com/video/av30113899,文字版本见https://mp.weixin.qq.com/s/dWB7DY5aPsbdfhZ2ByiaNQ和https://mp.weixin.qq.com/s/ryMGPZtiUMR1vXI970dckA)。
陶哲轩
讲解的效果怎么样呢?我欣慰地看到,许多同学看明白了。有些同学不但自己完全理解了,而且还写了许多有深度的评论,帮助其他同学理解,例如B站的“莫荒鸡”同学。这样的学生,是最有前途的!
这是令人欣慰的。令人不那么欣慰的是,仍然有许多同学没看明白。最令我吃惊的是,许多人的疑惑,是我在视频中已经清清楚楚解读过的。例如我已经明确说了,如果没有游客,岛上的人不会自杀,但许多人仍然认为在游客来之前岛民就应该自杀。又如我已经明确说了,游客带来了新信息,但许多人仍然认为游客没有带来新信息。
我在评论区看到了很多长篇大论的谬论,把各种有可能犯的错误都犯了个遍。我不禁想问了:你们与其费这么大劲写这么多漏洞百出的东西,为什么不先好好看看视频?难道你们没发现,你们的问题老师在课堂上早就回答过了吗?
由此可见,许多人的问题是:阅读理解能力太差!这是个非常基本的缺陷,是最基础的学习能力、沟通能力的问题。有这种缺陷的同学们请注意了,如果不先改进阅读理解能力,那么你很难跟别人进行有效的交流。你即使很努力地想学习什么、思考什么,也很容易变成事倍功半,把自己和别人都累得半死,结果还是错误百出。
以上是说明阅读理解问题的重要性。从我这个角度而言,可做的就是换一种叙述方式,尽可能明晰地重新给同学们讲解一下蓝眼睛岛问题。
这个问题之所以很奇妙,是因为其中涉及到若干个层次的思考,不像一般的问题只涉及一个层次。许多同学在低层次上能想明白,但在高层次上就过不去坎儿了,被绕得七荤八素。如果我们明确地指出,蓝眼睛岛问题分为哪些层次,想必会对同学们大有帮助。
蓝眼人
第一个层次是:这个问题本身的答案是什么?回答是:游客说话之后n天,所有n个蓝眼人一起自杀。
第二个层次是:棕眼人会不会自杀?回答是:不会,因为他们不知道岛上眼睛颜色只有两种。
第三个层次是:如果没有游客,岛民们会不会自杀?回答是:不会,因为没有推理的起点。
第四个层次是:为什么我们要关心“游客有没有带来新信息”这个问题?回答是:只有新的信息才能造成新的结果,这是一个常识,但蓝眼睛岛问题似乎推翻了这个常识。我们希望搞清楚,错误的是这个常识,还是“游客没有带来新信息”这个印象。
第五个层次是:游客到底有没有带来新信息?回答是:确实有!新信息不是游客的话“岛上有蓝眼人”,而是一个n阶的知识。这是超越常规,令人吃惊的。
第六个层次是:为什么这个n阶的知识是一个新信息?回答是:因为在游客公布之前,通过互相观察,岛民们最多只能获得n - 1阶的知识。
第七个层次是:这个新信息是如何发挥作用的?回答是:新信息使岛民们有可能通过一个判决性的实验,来推出自己的眼睛颜色。这个判决性实验的做法,就是等待和观察。
第八个层次是:在逻辑学上,如何描述游客发言的效果?回答是:游客通过公布一个岛民早已知道的信息,把它从弱共识提升到了强共识。
第九个层次是:如何解答蓝眼睛岛问题的各种变体,例如游客在第二天有什么办法可以减少伤亡?回答是:如果你理解了前面这八个层次,那么你就能解答种种扩展问题。而如果你前边就在某个层次卡壳了,那么你当然就会被越绕越糊涂。
第十个层次是:在现实生活中,哪些现象可以用这些道理来理解?回答是:就是我在原文中举的那些例子,《皇帝的新装》、语言通讯模型和摩尔定律等等。请注意,许多人举暗恋和表白的例子,但这个例子是错误的!暗恋表白并不是把弱共识变成强共识,而是原本没有共识。不要忘记,弱共识也是共识哦。
一个蓝眼睛岛问题,能引出十个层次的思考,真是非常惊人。请仔细想想,你思考到了哪个层次?
你能达到的层次越高,说明你的思维越有深度。如果你完全理解了所有这十个层次,那么祝贺你,你的思维非常清晰,而且有创造性,我们希望你为人类做出更大的贡献。如果你卡在了某个层次,那么请仔细想想,自己缺乏的是什么,是什么阻止了自己做出深入的思考。
好,下面我们就以尽可能简单清晰的语言,依次解读蓝眼睛岛问题的这十个层次。首先,让我们回顾一下问题本身:
“在一个岛上,住着一个部落。这个部落由1000个人组成,这些人有多种眼睛颜色。他们有一种宗教信仰,禁止他们了解自己眼睛的颜色,甚至禁止他们讨论眼睛颜色这个话题。因此,每个居民都能看到所有其他居民的眼睛颜色,但却不能发现自己的眼睛颜色(这里没有镜子或者诸如此类的东西)。如果一个岛民知道了自己的眼睛颜色,那么他们的宗教就会强制他们第二天中午在村庄广场上自杀,让所有人都看到。所有的岛民都非常逻辑和非常虔诚,他们也都知道其他人也非常逻辑和非常虔诚。在这里,‘非常逻辑’的意思是,如果从岛民已知的信息和观察中可以推理出任何结论,那么岛民必定会知道这个结论。
实际上,在这1000个岛民中,100个人的眼睛是蓝色,900个人的眼睛是棕色。不过,岛民最初并不知道这些数据。因为,每个人只能看到除自己之外的999个人的眼睛颜色,看不到自己的眼睛颜色。
有一天,一个蓝眼睛的游客来到了岛上,并且获得了部落的完全信任。一天晚上,他向整个部落的人致辞,感谢他们的款待。
然而,由于不了解当地的风俗习惯,这位游客犯了一个错误,在他的讲话中提到了眼睛的颜色。他说了一句:‘真是有趣呀,在这里能看到像我这样的蓝眼睛的人!’请问,游客的失言对部落会不会产生影响?如果有,是什么影响?”
如何解决这个问题?最快速而且严格的方法是,用数学归纳法来证明下面这个定理:如果岛上有n个蓝眼人,那么在游客发言的n天后,所有这n个蓝眼人一起自杀。
大家都知道数学归纳法是什么吧?这是高中的数学知识。如果没学过的话,我来解释一下。如果一个与自然数n有关的命题f(n)满足以下两个条件,那么这个命题就对于所有的自然数都成立。这两个条件是:(1)对于n = 1的情况,f(1)成立;(2)对于任何一个自然数k,假如f(k)成立,就可以推出f(k+ 1)也成立。显然,根据这两个条件,从f(1)成立就可以推出f(2)成立,从f(2)成立就可以推出f(3)成立,如此等等。无限递推下去,结果就是对所有的自然数都成立。
好,我们来用数学归纳法证明蓝眼睛岛问题的上述定理:如果岛上有n个蓝眼人,那么在游客发言的n天后,所有这n个蓝眼人一起自杀。
对于n= 1的情况,也就是说岛上只有一个蓝眼人,他在听到游客说“岛上有蓝眼人”之后,四处一望没看到蓝眼,立刻推出游客说的蓝眼人就是他。于是,他会在游客发言之后一天自杀。
如果对于n= k的情况,这个命题是成立的,现在我们来考虑n = k + 1的情况。基于n= k情况下的命题,这k + 1个蓝眼人中的每一个,都会做这样的推理:我看到了k个蓝眼人,假如他们就是全部的蓝眼人,那么过k天之后,他们就会一起自杀。而假如他们没有在k天之后一起自杀,就说明蓝眼人不止k个,而唯一可能的其他蓝眼人就是我自己。于是他等待k天,然后看到没有人自杀。由此得出结论,自己是蓝眼人。每一个蓝眼人都做出了这个推理,都知道了自己是蓝眼。因此,k + 1天之后,所有这k + 1个蓝眼人一起自杀。也就是说,从这个命题在n = k时成立的假设,我们推出了它在n = k + 1时也成立。
这两点就满足了数学归纳法的条件。因此,这个命题对于任意的蓝眼人数都成立,我们证明了,它是一条定理。就原题目而论,答案就是在100天后,所有这100个蓝眼人都自杀。
Xkcd的蓝眼睛岛漫画
这个证明过程,你完全理解了吧?没有疑问了吧?好,完全理解了,我们就继续向下走。
搞清楚了第一个层次,现在我们来看第二个层次:棕眼人会不会自杀?
看一下岛民做的推理,你就可以发现,他们对自己的眼睛颜色只是在两种可能性中选择:蓝色,或者不是蓝色。如果一个人确认自己的眼睛不是蓝色,那么仍然可能是棕色,可能是红色,可能是黑色等等,因此他还是不知道自己眼睛的颜色,所以不会自杀。
在这个题目中,岛民们一开始是禁止谈论眼睛颜色的,因此他们不知道岛上的眼睛颜色只有两种。游客能看到岛民的眼睛颜色只有两种,但并没有告诉他们这一点。因此,那些非蓝眼的岛民没有任何线索知道自己的具体颜色,在蓝眼人自杀之后,他们不会自杀。
在评论区看到,有人推来推去得出结论,棕眼人会推出自己是蓝眼人而自杀。这得是多么不开窍才会得出这种结论啊!岛民进行的既然都是正确的推理,怎么可能推出违反事实的结论?这些同学们是不是认为,自己经常推出错误的结论,所以岛民也会这么做?拜托,请仔细审题,题目说的是,岛民都非常逻辑。能推出来的,他们一定会相信。推不出来的,他们一定不会相信的!
在以上这些分析中,我们不需要考虑棕眼人思维的任何细节,就可以得出基本结论。如果你还是提心吊胆,像我在分析“王师傅卖鞋收假钞”那道题(B站视频见https://www.bilibili.com/video/av26209225,文字版本见https://mp.weixin.qq.com/s/ceL5ZZq_pYCgd51PDgtC-g)时指出的那样,对自己把握整体结构的能力没有信心,一定要看到每一个细节,那么我们也很容易列出棕眼人的思考过程。
游客说话以后,棕眼人想:我看到n个蓝眼人,假如他们就是全部的蓝眼人,那么过n天之后,他们就会一起自杀。而假如他们没有在n天之后一起自杀,就说明蓝眼人不止n个,而唯一可能的其他蓝眼人就是我自己。于是他等待n天,结果看到这n个蓝眼人在n天后都自杀了。由此他得出结论:自杀的这n个人就是全部的蓝眼人,自己的眼睛不是蓝色。然后推理就结束了,因为没有进一步的线索知道自己的眼睛是棕色、红色还是黑色等等,这些非蓝眼的岛民继续活着。
还有一个常见的误解是,棕眼人也会自杀,因为他们也在怀疑自己是蓝眼人。拜托,请仔细审题!题目说的是,只有完全确定自己的眼睛颜色的人才会自杀。自杀是因为确定,而不是因为怀疑!岛民是不会单纯因为怀疑就自杀的!想歪到这条路线上的同学,大概是把现实生活的经验跟题目混为一谈了。现实生活中确实有许多人因为怀疑而自杀,但你不要脑补到题目中来啊!
搞清楚了第二个层次,现在我们来看第三个层次:如果没有游客,岛民们会不会自杀?
回答是:不会。
请仔细看前面数学归纳法的证明过程。数学归纳法需要两个条件。第一个条件是:对于n= 1的情况,f(1)成立。第二个条件是:对于任意一个自然数k,假如f(k)成立,就可以推出f(k + 1)也成立。对于现在这道题目,第二个条件无论有没有游客都成立,但第一个条件在没有游客的时候不成立,因此没有游客时就不能得出任何结论了。
为什么第一个条件在没有游客的时候不成立呢?这时你要考虑的,是岛上只有一个蓝眼人的情况。他向外望去,看到999个棕眼人,仅此而已。没有一个外在的信息源告诉他“岛上有蓝眼人”,因此他无法推出任何结论。
由此可见,游客的发言在这道题里是必不可少的,它提供了一个推理的起点。
在评论区里,经常看到有人认为在游客来之前蓝眼岛民就应该自杀。他们以为,这道题的推理过程告诉我们,只要岛民们都知道“岛上有蓝眼人”,蓝眼人最后就会自杀,而在游客来之前岛民们通过互相看就知道了“岛上有蓝眼人”,因此压根不需要游客,蓝眼人就会自杀了。错了!大错而特错!只有在蓝眼人多于一个的时候,才能通过互相看知道“岛上有蓝眼人”。但是在只有一个蓝眼人的最基础情况下,这个蓝眼人就无法知道“岛上有蓝眼人”。一个递归推理,第一步的基础没了,后面还能推出什么东西来呢?
搞清楚了第三个层次,现在我们来看第四个层次:为什么我们要关心“游客有没有带来新信息”这个问题?
回答是:只有新的信息才能造成新的结果,这是一个常识,但蓝眼睛岛问题似乎推翻了这个常识,因为一眼看不出游客带来了什么新信息。我们希望搞清楚,错误的是这个常识,还是“游客没有带来新信息”这个印象。
这里我们需要强调一下,只有新的信息才能造成新的结果,对于逻辑系统,这不但是一个常识,而且是一个真理。因此,合理的思维方向,应该是尽力寻找游客带来了什么新信息。这就好比在物理学中,能量守恒定律是一条深深扎根在人们头脑中的原理。每当有新的实验现象显得能量似乎不守恒的时候,物理学家们一定会想尽一切办法去寻找遗漏的能量,让能量守恒定律仍然成立,而不会不经过战斗就轻易地放弃能量守恒定律。
令我感到惊讶的是,许多人轻易地就放弃了“只有新的信息才能造成新的结果”这个常识,大谈特谈“游客没有带来新信息”。如果没有带来新信息,那么游客的作用是什么呢?他们发明了种种说法,例如游客带来一个记数的起点,游客提醒大家思考眼睛的颜色,游客给大家的思考时间做了同步等等。
这些说法可能对也可能不对,我在这里顾不上一一辨析。但真正重要的是,这些说法都是事后的描述,而不是事前的解释。你是先理解了第一个层次的结论,然后把游客的作用比喻成各种东西,这些话说得再漂亮也只是比喻而已。对于当前这第四个层次的问题,即“游客有没有给出新信息”,你还是在回避问题,甚至直接就给出了错误的答案。
搞清楚了第四个层次,现在我们来看第五个层次:游客到底有没有带来新信息?
回答是:确实有!请注意,这里是蓝眼睛岛问题真正的困难所在,难度比第一个层次的数学归纳法推理高得多。许多人能够理解第一个层次,还能滔滔不绝地写一大段形象的描述来解释蓝眼人的思维过程,但在这第五个层次上却错误百出,死活理解不了游客带来的新信息。
在这里我必须要敲一下黑板,提醒同学们注意我说的每一句话。一定要原原本本地理解我说的每一个要点,直接面对智力的挑战,你才能翻越这座山峰。如果你自行脑补,自动忽略了我讲的某些要点,按照在你看来最容易的方式去理解,那么你必然会在无数种可能的错误之中打转,永远也搞不清这个问题的精妙之处。
我们先来描述答案:游客带来的新信息,是一个n阶的知识。如果把n个蓝眼人称为A1、A2、A3……一直到An,那么游客给A-1带来的新信息就是下面这个命题:
A1知道,A2知道,A3知道,……,An-1知道,An知道,“岛上有蓝眼人”。
这个命题虽然很长,但它确实是一个命题。跟一般命题不一样的是,这个命题中出现了“知道”这个词,而且出现了n次。因此,我们把它称为一个n阶的知识(knowledge)。一个命题中出现了多少次“知道”,我们就把它叫做多少阶的知识。
下面,我们把“岛上有蓝眼人”这个命题记为P。“An知道P”是一个一阶的知识,我们把这个命题记为K1。“An-1知道K1”是一个二阶的知识,我们把这个命题记为K2。如此等等。最后,游客带来的新信息“A1知道Kn-1”是一个n阶的知识,我们把这个命题记为K-n。
为什么K-n是一个新信息?这就是第六个层次的问题了。
我们可以证明:在游客发言之前,岛民们通过互相观察,最多只能知道n - 1阶的知识,不能知道n阶的知识。
为什么呢?因为每个人都不知道自己眼睛的颜色,他在推测别人怎么想的时候,只能考虑别人之间的互相观察,不能考虑别人观察自己的结果。这就意味着,每多一重“知道”,知识每升高一阶,作为知识来源的人数就减少一。
例如对于K-1,即“An知道P”,我们说过了,P是“岛上有蓝眼人”这个命题,An可以通过观察其他n- 1个蓝眼人中的任何一个来推出P。他只需要扣除自己就行,这个知识的来源有n- 1个人。对于K2,即“An-1知道K1”,An-1就需要扣除自己和An,这个知识的来源只剩下n - 2个人。以此类推,对于Kn-1,即“A2知道Kn-2”,A2就需要扣除从自己到An的所有人,即扣除n - 1个人。这个知识的来源只剩下了一个人,就是A1。
那么对于Kn呢?所有的n个人都被扣除了,都不能作为这个知识的来源。但一个知识至少要有一个来源,因此Kn根本就不是个知识,这是个假命题。由此可见,通过互相观察,是无法得到Kn的,最多只能得到Kn-1。
那么,在游客发言之后,为什么就能得到Kn了?因为这时游客成了一个公开的信息来源,每个岛民都可以从他这里知道P,不再需要通过互相观察推来推去了。而且每个岛民都知道,其他人都从游客那里知道了P。因此,岛民们不但是一下子知道了Kn,而且还一下子知道了Kn+1、Kn+2,以至于任意高阶的知识。不过岛上只有n个蓝眼人,如果知识高于n阶,里面出现的人就必定有重复的,好比“A1知道A1知道某某事”。这就没有太大意思了,而且带来了额外的复杂性,对当前的问题没有帮助。因此,我们只关注Kn这个新信息就足够了。
现在我们可以确认,游客确实带来了新信息。大家都听明白了吧?
评论区里有很多人说,想来想去还是觉得游客没有带来新信息,因为岛民早就知道“岛上有蓝眼人”了。拜托,请仔细看我的视频!我一上来就明确地告诉大家了,新信息不是“岛上有蓝眼人”,而是那个n阶的知识!为什么你们不能好好地听别人说什么,而非要自己脑补一通,做一大堆错误的推理,白白把自己搞得晕头转向呢?孔子早就说过:“学而不思则罔,思而不学则殆。”如果你们学不会认真听别人说话,那么你们以后犯错的地方还多着呢!
学而不思则罔,思而不学则殆
游客确实带来了新信息,这是一个好消息,因为我们维护了“只有新信息才能造成新结果”这个常识,解决了一个对常识的挑战。解决这个挑战的办法是向前走,把游客带来的新信息明确地指出来,而不是兜圈子,用“游客让大家开始思考”、“游客给大家对时”之类的话来搪塞,回避问题。至于有些人说“游客没有带来新信息”,轻易地就放弃了常识,那更是错得没边了。
搞清楚了第六个层次,现在我们来看第七个层次:Kn这个新信息是如何发挥作用的?
回答是:这个新信息立刻使岛民们认识到,他们有可能通过等待和观察,来推出自己的眼睛颜色。用物理学的语言说,他们可以做一个判决性的实验了。这个判决性实验的做法,就是等待和观察。
判决性实验,在科学中是一个非常重要的概念。例如爱因斯坦预测光线经过太阳附近时会偏折,这就是一个判决性的实验,是广义相对论获得公认的一个关键证据。在蓝眼睛岛问题中,游客发言之前,岛民是没有判决性实验可做的。游客发言之后,岛民就有了一个判决性实验。
在这里,一点有趣的是,岛民的判决性实验并不是立刻就能做的,而是需要等待一段时间。同样用上面的那个类比,爱因斯坦建议的光线偏折实验也不是立刻就能做的,而是要等到日全食的时候,否则远方恒星的光会被太阳发出的光淹没。因此,岛民们意识到判决性实验的存在,这件事是立刻就发生了,但这个实验的后果,却不是立刻就显现出来的。
1919年5月29日日全食时爱丁顿等人验证广义相对论的光线偏折观测
我们需要强调一下,Kn这个新信息是在游客发言之后立刻就获得了。评论区里有不少人认为,游客刚发言的时候没有新信息,只是在看着时间一天一天过去而没有人自杀的时候,才得到了新信息。我们必须指出,这种看法是错的!虽然这么想的人已经做了很多思考,但结果还是错的!
搞清楚了第七个层次,现在我们来看第八个层次:在逻辑学上,如何描述游客发言的效果?
回答是:游客通过公布一个岛民早已知道的信息,把它从弱共识提升到了强共识。这个操作产生的新信息并不是公布的信息本身,而是一个n阶的知识。强弱共识的说法,在本质上跟n阶知识的说法是等价的,不过用起来方便得多,所以后面我们都来用它。
在这里我们需要强调,强共识的定义是,如果一个信息所有人都知道,而且所有人都知道所有人都知道,所有人都知道所有人都知道所有人都知道,……如此等等,以至于无穷,那么这个信息是一个强共识。这里的要点在于,“以至于无穷”。
在评论区有不少人说,游客发言之前,“岛上有蓝眼人”就是强共识,因为不但所有人都知道这一点,而且所有人都知道所有人知道这一点。拜托,请仔细看定义!你只是证明了,“所有人都知道”在这里可以重复有限次,但定义要求的是重复无限次!
在第六个层次的讨论中,我们其实已经证明了,在游客发言之前,“所有人都知道”最多只能重复n- 1次。只要不能重复无限次,它就只是一个弱共识,而不是强共识。
搞清楚了第八个层次,现在我们来看第九个层次:如何回答蓝眼睛岛问题的各种变体?例如陶哲轩问的,如果游客在第二天意识到了自己的失言,有什么办法可以减少伤亡?而如果游客是在更多天以后才意识到自己的失言,又有什么办法可以减少伤亡?
回答是:如果你理解了前面的八个层次,你自然就能解答这些扩展问题。如果你前边就在某个层次卡壳了,那么你当然就更加如坠云里雾里。
对于这些问题的回答,我已经在8月23日的视频(https://www.bilibili.com/video/av30113899)中给出了。基本的回答就是:如果游客发言之后已经过了m天,那么游客就需要指出m个人是蓝眼,或者带走m个蓝眼人,才能阻止蓝眼人全体自杀。具体的讨论,可以去看那期视频。
最后,我们来看第十个层次:在现实生活中,哪些现象可以用这些道理来理解?
回答是:就是我在8月23日的视频(https://www.bilibili.com/video/av30113899)中举的那些例子,《皇帝的新装》、语言通讯模型和摩尔定律等等。有兴趣的观众请去看那期视频,这里不再重复。
皇帝的新装
这里有一点特别值得指出的是,经常有人用暗恋和表白作为弱共识和强共识的例子。但你如果仔细思考一下,就会发现,这个例子是错误的。请问,在双方都暗恋对方的时候,有什么共识?真正的回答是没有共识。因此,表白的作用并不是把弱共识变成强共识,而是把没有共识变成有共识。这是一个平凡的例子,而蓝眼睛岛问题是一个高度非平凡的例子。如果你看不出两者的区别,说明你还没有理解蓝眼睛岛问题的精妙之处。
暗恋
许多人犯这个错误,是因为把弱共识跟无共识混为一谈了。请注意,弱共识已经是共识了!不要拿豆包不当干粮,不要拿弱共识不当共识!
到这里,我们终于解读完了蓝眼睛岛问题的所有十个层次。这确实是一个非常有启发性的问题,能够引出这么多层次的思考,怪不得陶哲轩一再地向大家推荐。
原文发布在【风云之声】公众号 2018年9月10号
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-23 01:04
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社