一個關於數學歸納法的悖論問題:到底是第 N 天有 N 個紅眼睛自殺,還是什麼都不會發生?

此問題最早據說是澳大利亞的華裔數學神童陶哲軒在網上貼出來讓大家思考,逗大家玩兒的。
補題源:http://terrytao.wordpress.com/2008/02/05/the-blue-eyed-islanders-puzzle/
註:題源背景為藍眼睛(100)、棕眼睛(900)。

題目是這樣的。說一個島上有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個紅眼睛而已。旅行者說的那句【島上有紅眼睛的人】,沒有輸入任何新的信息,他說的就是島上的人每天都看到的景象。所以哪怕島上的人思維再縝密嚴謹,也不會有任何自殺的情況發生。

從這個角度來說,也對呀。

本題的升級版在:關於紅眼睛藍眼睛自殺問題,陶哲軒教授又問:旅者如何挽回自己說的話?
以及引申:關於紅眼睛自殺問題的引申,如果在自殺日到來之前有紅眼睛自然死亡,會怎樣?
還有這個問題在現實中有哪些應用場景呢?


「遊客沒有輸入任何新的信息」這個斷言是錯的。

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====
從小到大,我們一次又一次地被旁人這樣教訓:「噓,別說了,小心點。況且這種事誰不知道啊,還要你說?說出來又有什麼用呢?你有力量改變它嗎?」久而久之,我們越來越習慣於把「你懂的……」掛在嘴邊,習慣於對房間里的大象視而不見,選擇性遺忘了一個我們其實早就知道的重要事實:「大聲說出來」跟「彼此心照不宣」有著決定性的區別。我們不是沒有力量。一條恰當的宣言,哪怕它的內容只不過是「我知道」這麼簡簡單單的一句話,也有可能引起整個社會的信念結構的根本改變,讓許許多多人斷然行動起來。這就是我們每一個人的力量。


下面讓我們從一個通信而非博弈的角度來看這個問題。

我們先假設「自殺」是一個有樂趣的事情,即,島上的人很想「自殺」。我們認為島上的人約定了一個「協議」,這個協議滿足:
條件1.在世界開始之前,協議已被制定;一旦世界開始(人開始看別人的眼睛以及是否有人自殺)之後,任何人之間沒有任何通信。也就是,協議可以描述為一個函數:
f(id,color,n,alive)
其中,id表示自己的身份,color表示除自己以外的人的眼睛顏色,n表示今天的日期,alive是一個二維數組,表示從開始到現在的每一天里每個人是否還活著。f的值就是自己是否「自殺」。
條件2.對任何一種眼睛顏色的配置,不存在一天,使得某個藍眼人自殺。
如果協議滿足條件2,我們說它是合法的。
如果一個協議滿足,對於任何初始配置,存在一天,使得所有的紅眼人都死了,那麼稱這個協議是完備的。

定理1:不存在一個會導致任何人自殺的合法協議(真好!)。
推論:任何合法的協議都是非完備的。
證明:反證。假設在某種協議以及某種眼睛配置的情況下,第n天有人自殺了。因為自然數是良序的,我們可以取最小的n。
這時,對某個id,color,alive,有
f(id,color,n,alive)=自殺。
由於n是最小的,所以alive裡面的內容都是「活著」。這時,我們將初始配置中第id個人的眼睛顏色反轉。易證,第n天前不會有人自殺(因為n是最小的),所以,這種情況下他得到的全部信息
(id,color,n,alive)
是和初始配置反轉之前一樣的。於是,這個協議就是不合法的。

遊客的出現使得整個模型被摧毀。於是,我們只能認為,遊客出現之後,島上的人忘記了自己的眼睛顏色,之後開了個大會,討論新的協議。這個協議與之前唯一的不同是:
條件3.如果對任何非全藍眼的初始配置,不存在一天,使得某個藍眼人自殺,那麼稱這個協議是「幾乎合法」的。

定理2:存在一個幾乎合法的完備的協議。
證明:這個協議的內容是:當且僅當n等於color中紅眼人的數量,f(id,color,n,alive)=自殺

我們說島上的人都是心思縝密的。什麼叫心思縝密呢?我們理解為:盡量早自殺。

定義:對於兩個幾乎合法的完備的協議f1與f2,如果對所有初始配置,f1中所有紅眼人全都自殺了的日期小於等於f2中所有紅眼人自殺的日期,那麼稱f1&<=f2
易證,&<構成一個偏序

定理3:這個偏序存在唯一的最小元,即定理2的證明中的協議。
證明:留作給讀者的練習。

結論就是,在這種理解之下,島上的人「早死早超生」的方法就是在遊客來了之後第N天N個紅眼的集體自殺。

必須強調的是,有很多幾乎合法的完備協議,例如:
第2*n天n個紅眼人集體自殺
第fib(n)天n個紅眼人集體自殺
。。。。。。
所以,我們必須假設島上的人是渴望自殺的。


陶哲軒說,這個旅行者事實上講了一句廢話,沒有帶來任何新的信息。
問題就在於上面這句話!!!

這個題目有個隱含前提,就是島上的居民不會互相交流島上是否有紅眼睛、有幾個紅眼睛這個信息,這個是島上紅眼睛居民能夠保持穩定存活的一個前提,不然他們早自殺了。好,接下來開始做題。

假設有99人藍眼睛,1人紅眼睛,則如果需要維持紅眼睛不自殺的狀態的話,則只有99人知道
島上有1個紅眼睛的人 ,而1人不知道島上有紅眼睛的人,而當遊客講了
島上有紅眼睛的人 這句話後,那1個人收到新的信息了,也就是說他收到了新的信息,他知道島上有紅眼睛的人了,所以他必然自殺。

假設有2人紅眼睛,則有98人知道島上有2個紅眼睛的人,而剩下2個人都認為島上只有1個紅眼睛的人,而且雙方都以為對方不知道島上有紅眼睛的人這個信息, 而當遊客講了 島上有紅眼睛的人 這句話後,那2個人收到新的信息了,也就是說他們明白對方知道
島上有紅眼睛的人這個信息
了,但是對方卻沒有自殺,這個必然導致自己的自殺。

假設有3人紅眼睛,則有97人知道島上有3個紅眼睛的人 ,而剩下3個人都認為島上只有2個紅眼睛的人,並且以為其他兩個人掌握了如上段歸納的信息,所以因為上段所述的原因,其他兩個人必然在第二天自殺,但是,結果是其他兩個人沒有這麼做,所以他們都收到了新的信息,知道其他兩個人掌握的信息與上段歸納的信息不符,所以必然導致自己的自殺。

剩下的按以上類推,不打字了


旅行者的話沒有信息量這是不對的,雖然每個島民都知道島上有紅眼的人,也都知道每個人都知道島上有紅眼的人(因為除了自己以外至少還有4個紅眼),也都知道每個人都知道每個人都知道島上有紅眼的人(因為除了自己和那個人以外至少還有3個紅眼),也都知道每個人都知道每個人都知道每個人都知道島上有紅眼的人(因為除了自己、那個人、那個人的「每個人」至少還有2個紅眼),但是並不知道每個人都知道每個人都知道每個人都知道每個人都知道島上有紅眼的人


從島民的視角看,比從局外人分析要容易理解,遊客的話是有作用的,為簡單起見分析四個紅眼睛的情況。
假設島上有張三李四王五趙六四個紅眼睛,張三會看到三個紅眼睛,我們看張三的心理活動:

老子應該沒那麼衰,肯定是藍眼睛,那三個哥們不知道上輩子作什麼孽了,生下來就紅眼睛,哪天知道真相就得自殺了。

不過話說回來,隔壁李四肯定也以為自己是藍眼睛吧。這小子天天沒事就去王五趙六家附近轉悠,回來就一臉的優越感,他還以為島上就他們兩個紅眼睛呢。唉,無知真可怕。

李四這小子應該也像我嘲笑他那樣嘲笑王五和趙六吧,他肯定覺得王五以為趙六是唯一的紅眼睛,所以這麼多年來趙六還活著的原因是一直沒人告訴他咱們島有紅眼睛,要是哪天有人讓趙六知道了,趙六就得自殺了。其實王五才沒那麼想,王五肯定也這麼想李四的。

要是有誰來喊一句島上有紅眼睛的話,李四更得幸災樂禍的去看王五的笑話了,他肯定覺得王五在等那晚上趙六自殺,等那天過後再看王五和趙六一起自殺。李四這小子太天真了,他不知道前兩天根本不會有人自殺,到第三天他就傻眼了……

我們知道遊客來了後第三天不會有人自殺,因為其餘三個人心理活動是一樣的。而到了第四天四個人都傻眼了,然後在第四天晚上集體自殺。

現在,如果你是島上的一員,你發現第四天還是沒有人死……


「陶哲軒說,這個旅行者事實上講了一句廢話,沒有帶來任何新的信息」
這句話是不對的。

旅行者做的事,是同步了島民的對眼色認知的「時間起點」。
原本,紅眼只能精確到4或5個紅眼,藍眼只能精確到5或6個紅眼。沒人能做準確判斷。
同步時間起點之後,才能按照第N天是否有人自殺進行判斷。

=======展開討論分割線,不能深入淺出,所以以下不用看=========
大前提是:知道自己眼色的人都要在當晚自殺。

紅眼的小前提:我看到n個紅眼。
藍眼的小前提:我看到n+1個紅眼。
唯一紅眼的小前提:我看到0個紅眼。

結論都是:我不確定自己什麼顏色。

旅行者開啟了死亡倒計時,他說的話其實補充了兩個前提:
A:島上有紅眼。
B:如果島上只有一個紅眼,那他今天必須死。

A可以殺死唯一的紅眼。
B讓所有人認識到:自己看到的紅眼個數,就是紅眼的死期,如果紅眼沒有死,那麼自己是紅眼。


討論一個可能,如果原來島上沒有紅眼睛,而遊客宣告有紅眼睛,是不是第二天全島的人就都死了?so sad...


用笨辦法把各位的答案展開一下吧。

1個紅眼

在遊客來之前,這個紅眼(就叫他李雷吧)看到99個藍眼,由於他並不知道島上是否一定有紅眼睛存在,所以他並不會自殺。在他看來,島上可能有一個紅眼睛(他自己),可能沒有紅眼睛,總之他推理不出自己眼睛的顏色,所以李雷就快樂地活下去了。

對於島上的某位藍眼(就叫他韓梅梅吧)來說,他看到1個紅眼李雷,而這個紅眼李雷沒自殺。但他明白李雷不自殺,可能是因為李雷推斷不出自己的眼色,並不一定是因為韓梅梅是紅眼。所以他也快樂地活下去了。

遊客來一句「貴島有紅眼」,導致紅眼李雷自殺身亡。

2個紅眼
沒有遊客的時候,2個紅眼看到島上有1個紅眼且不自殺,他倆會重複上面第二段的推理,於是他倆活下去了。
其他藍眼看到島上有2個紅眼,但他倆不自殺依然推導不出自己的眼色,活。

現在遊客說貴島有紅眼。
第一天,紅眼李雷看到1個紅眼韓梅梅。
第二天,李雷看到韓梅梅不自殺,這時候他明白,這不再是因為韓梅梅推斷不出自身的眼色,而是因為李雷自己也是紅眼,於是他們雙雙赴黃泉。

3個紅眼
餓得頭昏,明兒再寫。


思路
下面設k為紅眼睛的人數,Ri(i=1,2,…,k)為紅眼睛者,以K=1、k=2、k=3三種情況為例,展開進行闡述:
k = 1

宣告前

第一天,R1看到了99個藍眼睛的人,但他不知道自己是紅眼睛(他不確定這個島上有紅眼睛),也無法知道自己是紅眼睛,所以R1不會自殺。 藍眼睛們各自看到了一個紅眼睛和98個藍眼睛,但是不知道自己是不是紅眼睛,由於沒有人自願自殺,所以這些藍眼睛們都作出了自己不是紅眼睛的推斷,於是他們會等待一天。如果明天R1自殺了,那麼確定自己就是藍眼睛。如果沒有人自殺,由於無法排除是由於R1不知道存在紅眼睛造成的,所以藍眼睛們不知道自己是否是紅眼睛,於是他們不會自殺。
第二天,各人重複第一天的推理,所以相安無事,一直沒有人自殺。也就是說,「沒有人自殺」這個事件不能令他們確定紅眼睛的存在,於是系統達到了平衡。

宣告後

第一天,R1看到了99個藍眼睛的人,知道了自己是紅眼睛,於是當天晚上自殺了。 第二天,剩下來的99個藍眼睛看到有紅眼睛自殺了,因此知道這個自殺的紅眼睛是因為看到除自己以外的都是藍眼睛才會自殺,也就是知道自己不是紅眼睛,於是他們快樂地生活下去。

k = 2

宣告前

第一天,R1看到了1個紅眼睛的人(R2)和98個藍眼睛的人,但他不知道自己是不是紅眼睛,所以R1就想:「如果自己是藍眼睛,那麼就只有一個紅眼睛,那麼R2看到的都是藍眼睛。如果他知道至少存在一個紅眼睛,那麼明天他就會自殺(因為今天他看到的全部是藍眼睛),那麼我就是藍眼睛。如果他不知道至少存在一個紅眼睛,那麼他就會作出全部人都是藍眼睛的推斷,那麼今天晚上他不會自殺。由於今天不確定我是不是紅眼睛,所以今天我不會自殺。」。
同樣地,R2也這麼想。
其餘的藍眼睛各自看到了兩個紅眼睛(R1和R2)和97個藍眼睛,假設其中一個為B1。B1不知道自己是不是紅眼睛。假設B1認為自己是藍眼睛,那麼,不失一般性,B1認為其中一個紅眼睛R1隻看到了另一個紅眼睛R2。由於R1不會自願自殺,所以R1會作自己是藍眼睛的假設。也就是R1今晚不會自殺(R1會像K=1時的藍眼睛那樣推理)。B1無法根據現有條件判斷自己是不是紅眼睛,所以B1不會自殺。
第二天,R1發現R2沒有自殺,但是他不知道R2知不知道至少存在一個紅眼睛,所以R1無法確定R2第二天沒有自殺是不是因為這個原因,也就是R1無法確定自己是不是紅眼睛,所以第二天R1也不會自殺。同理R2也這樣想。
藍眼睛們無法根據第二天R1、R2都沒有死亡推斷出「他們沒死是因為他們都看到了2個紅眼睛,因此我是紅眼睛」這個結論,因此不知道自己是不是紅眼睛,所以藍眼睛們沒有行動。
於是他們都無法得知自己是不是紅眼睛,於是快樂地生活下去。

宣告後

第一天,R1看到了1個紅眼睛的人(R2)和98個藍眼睛的人,但他不知道自己是不是紅眼睛,所以R1就想:「如果自己是藍眼睛,那麼就只有一個紅眼睛,那麼R2看到的都是藍眼睛,那麼明天他就會自殺。也就是明天如果R2自殺的話,我就是藍眼睛,如果R2沒自殺,那麼我就是紅眼睛」。所以R1這天晚上沒有自殺。
同樣地,R2也像R1這樣想,所以R2這天晚上沒有自殺。
其餘藍眼睛各自看到了兩個紅眼睛(R1和R2)和97個藍眼睛,假設其中一個為B1。B1不知道自己是不是紅眼睛,但他可以這樣推理:「假設我是藍眼睛,那麼其中一個紅眼睛R1隻看到了另一個紅眼睛R2。由於R1不會自願自殺,所以R1會作自己是藍眼睛的假設。也就是R1今晚不會自殺,他會等到明天看R2會不會自殺。同理當天R2也會這樣想,大家都按兵不動,所以第一天晚上沒有人自殺。那麼如果第二天晚上R1和R2自殺了,那麼說明只有兩個紅眼睛,那麼我就是藍眼睛了,如果沒有自殺,那麼說明R2和R1也看到了2個紅眼睛,R1和R2也在等待事態發展(也像自己那樣推理)而沒有行動那麼我就是紅眼睛了」。B1當天沒有自殺。
第二天,R1,R2發現對方沒有自殺,於是知道自己是紅眼睛,於是就在晚上自殺了。藍眼睛們在等待R1和R2今天會不會自殺。
第三天,其餘的98個藍眼睛知道了兩個紅眼睛自殺了,所以知道自己是藍眼睛,於是他們快樂地生活下去。

k = 3

宣告前

紅眼睛們各自看到2個紅眼睛和97個藍眼睛,他們像宣告前K = 2時的藍眼睛那樣推理,所以不會自殺。藍眼睛們各自看到3個紅眼睛和96個藍眼睛,於是他們根據這3個紅眼睛的行動來確定自己的狀態。但由於無法「知道R1知道R2知道R3知道存在紅眼睛」,所以藍眼睛們一直無法確定「今天三個紅眼睛都沒自殺是因為各自都看到了三個紅眼睛,都在等待,所以我是紅眼睛」這個結論,所以不會自殺。


宣告後

第一天,紅眼睛們各自看到兩個紅眼睛和97個藍眼睛,他們像宣告後K = 2時的藍眼睛那樣推理。直至第三天,紅眼睛們發現依然沒人自殺。不失一般性,以R1為例,R1可推斷出R2,R3都看到了2個紅眼睛,都在等待事態發展,就是說存在三個紅眼睛,從而推斷出自己是紅眼睛,於是R1在當晚就自殺了。同理R2,R3也自殺了。藍眼睛們在第四天發現看到的三個紅眼睛都自殺了,由此推斷自己是藍眼睛,於是快樂地生活下去。
總結

於是,我們可能歸納出一個可能的結論:旅行者宣告紅眼睛存在前,大家相安無事;旅行者宣告紅眼睛存在後,第k天時,k個紅眼睛將在晚上自殺。 該結論可以用歸納法證明,我就不詳述了。在這裡我說一下自己的見解:

  1. 沒人願意自殺,所以各人的推理都是以自己是藍眼睛為起點。
  2. 旅行者宣告紅眼睛的存在後,某個看到k個紅眼睛的人O會這樣想:「眼前的其中一個紅眼睛R1會看到比我少一個紅眼睛(O認為自己是藍眼睛)」,而且O認為R1認為R2也是像自己那樣想的,同樣地O認為R1認為R2認為R3也是這樣想的…如此層層深入,到最後O認為R1認為R2…Rk-1認為Rk看到的全部是藍眼睛。
    O要等到第k天才能從R1的行為來判斷自己的狀態:第二天一早,O知道Rk不會死,O認為R1認為R2認為…Rk-2認為Rk-1認為Rk看到了不止一個紅眼睛,O認為R1認為R2認為…Rk-2會根據Rk-1和Rk在第三天存活情況判斷自己眼睛的顏色;第三天一早O知道Rk-1和Rk都不會死,O認為R1認為R2認為…Rk-3認為Rk-2認為Rk-1和Rk看到了不止兩個紅眼睛,O認為R1認為R2認為…Rk-3會根據Rk-2、Rk-1和Rk在第四天存活情況判斷自己眼睛的顏色…如此類推。 到了第k天,如果眼前這些紅眼睛都沒有死,那麼O知道了R1和R2和…Rk-1和Rk看到了不止k-1個紅眼睛,也就是說自己也是紅眼睛,O將會在今晚自殺。如果眼前這些紅眼睛全部死了,那麼O知道了R1和R2和…Rk-1和Rk看到了k-1個紅眼睛,自己是藍眼睛,所以不會自殺。
  3. 如果旅行者不宣告,那麼第二天一早,O知道Rk不會死,但O認為R1認為R2認為…Rk-2認為Rk-1不知道Rk沒有死是因為不知道存在紅眼睛還是看到了不止一個紅眼睛;第三天一早,O知道Rk-1和Rk都不會死,但O認為R1認為R2認為…Rk-2不知道Rk-1和Rk沒有死是因為前一天的不確定還是看到了不止兩個紅眼睛…如此類推,第k天時,O不知道昨天晚上沒人自殺是因為前一天的不確定還是有k個紅眼睛,所以O不會自殺。
  4. 可以看出,每個人判斷自己是紅眼睛的邏輯的最深層的條件就是由於存在紅眼睛,而且現在我看到其餘的人都是藍眼睛,所以我是紅眼睛。這也是整個歸納法的初始條件

有一種不同的觀點是:題目中說明島上有5個紅眼睛和95個藍眼睛,那就是說,每個人都能看到紅眼睛,那麼旅行者說的「你們這裡有紅眼睛的人」沒有增加任何信息,是一句廢話。但 「每個人都能看到紅眼睛」和「你們這裡有紅眼睛的人」是不等價的,後者還帶有「任意一人知道了另一個人知道了…另一個人知道了存在紅眼睛」這個信息。而這個信息使得歸納法中n = 1時的條件成立了,於是整個死亡鏈條就開啟了。


細思之後,遊客還是輸入了重要的信息。在推理中,有一個人不知道有紅眼睛,現在他知道了。

具體邏輯是這樣的:

同歸納法:

1. 假設只有1個紅,那麼遊客不說,則他不知道「島上有紅眼睛」
2. 假設有2個,其中一個人就會看到另有一個人有紅眼睛,那麼他就要分析那個人什麼時候自殺。假設是第i天,而如果第i天他都沒有自殺,那麼i+1天他就知道自己是紅的了。所以他就假設只有1個紅的情況,於是發現那個人不知道這件事,於是他也沒辦法決定什麼時候自殺
3. 現在假設有3個人,對其中一個人A來說,他看到B和C是紅的,他就假設只有兩個人,分析他們什麼時候自殺:注意現在在A的假設中,只有B和C兩個紅的,那麼B只能看到C一個紅眼的,在這個A假設的B的假設中,C就不知道有紅眼的人了(即使A知道C看到紅眼的人,但是在這個假設中,B不能知道這一點),所以按這個假設,B和C沒法自殺,A也沒有辦法自殺了。
4. 4個人和5個人的邏輯差不多,就是在他們的假設推理中,會發現最後都歸結到最後一個人是不知道紅眼睛的。

所以其實遊客輸入了重要的信息。

其實回到最初證明的歸納法,這個問題就非常簡單了。
對於歸納步驟是很正確的,如果我知道n-1個人在k天會自殺,而k天過了沒自殺,那麼我就能判斷自己是紅的而自殺。這點非常ok。
但是邊界沒有了:只有一個紅眼睛的人,他第一天就會自殺!這件事如果遊客不說,則更本不會發生。沒有這件事,建立在歸納法上的推理也無法成立,如果一個人的情況不可能自殺,那兩個人就不會自殺,那麼三個人就不會自殺,那麼......


看到排名第一的答案,實在太高階了,理解起來有點艱深,我來用一個圖來解釋下這道題吧。

以下用A表示紅眼睛,A1,A2.......標記不同的紅眼睛。

N=1 ,簡單,不贅述。
N=2 ,A1以為自己是藍眼睛,認為會發生N=1的情形,即:A2這傢伙當天夜裡會自殺。
A2也如此,認為A1這傢伙當天夜裡會自殺。
結果兩人第二天都沒自殺,兩人意識到自己與對方等價,是對方期待會自殺的那一個人。
因此,兩人都意識到自己是紅眼睛,於是在第二天夜裡自殺。

N=3,我們用以下這個圖來解釋:

A1看到A2,A3兩個紅眼,A1自認為自己是「N=2時的情形下的一個藍眼睛」,所以他完全是一個旁觀者,他當然預見到N=2時的情況是——「第二天夜裡A2、A3同時自殺」,而自己不會採取任何行動。

同時,因為A1、A2、A3的位置完全對等。
A2也認為將會發生的情形是:第二天夜裡A1、A3同時自殺,自己不會採取任何行動。
A3也認為將會發生的情形是:第二天夜裡A1、A2同時自殺,自己不會採取任何行動。

可是,在這種情形下,到了第三天,A1、A2、A3都沒有自殺,他們都在等待他們預見的N=2時的情形發生,他們看到的那兩個紅眼睛應該都自殺了,這種情形沒有發生,那只有一種可能性了:N=3,而自己就是那不幸的第三人。
結果,第三天夜裡,A1、A2、A3同時自殺。


N=4,你盡可以再畫一個圖來表示:

A4假設自己是藍眼睛,等待看著可憐的A1、A2、A3到了第三天夜裡自殺。
同理A1也在期待A2、A3、A4
到了第三天夜裡 自殺
同理A2也在期待A1、A3、A4
到了第三天夜裡 自殺
同理A3也在期待A1、A2、A4
到了第三天夜裡 自殺

結果第四天,四個人都意識到A1、A2、A3、A4等價。
第四天夜裡A1、A2、A3、A4全部自殺。

......

N=n,同樣可以畫圖來解釋:

A1也在期待A2、A3、A4.......An到了第n-1天夜裡 自殺
A2也在期待A1、A3、A4.......An到了第n-1天夜裡 自殺
A3也在期待A1、A2、A4.......An到了第n-1天夜裡 自殺
.
.
.
An也在期待A1、A2、A3.......An-1到了第n-1天夜裡 自殺

結果第n天,大家都意識到A1、A2、A3、A4.....An等價。
第n天夜裡:A1、A2、A3..................An全部自殺


認為N&>=3時,旅客信息無效的童鞋都看過來。前提是你看完@張石敧 的回答。
以為N&>=3的時候島上本身就存在「公共知識」的童鞋要不是沒有考慮多階情況,要不就是誤判本題推理具有傳遞性
把問題簡化為三個紅眼睛A、B、C。現簡單考慮公共知識的子集:A、B、C是否都知道大家都知道大家知道有紅眼睛的人?
分析如下,由於A、B、C看來,至少存在兩個紅眼睛。所以能得到以下結論(」A--&>B「表示A知道B知道有紅眼睛的人)
A--&>B
B--&>C
C--&>A

而!:
公共知識存在的必要條件是:A--&>B--&>C (可惜在遊客說話之前,證明不出來!)


我們分析一下:
假設你現在是A,以A的視角考慮以下問題Q

Q:
你(A)能不能確定以下情況:B知道C知道有島上紅色眼睛的人呢?
答案:不能

分析如下:
一階視角是你(A),你不知道自己的顏色,所以在這個Q的過程中,你的眼鏡顏色不能作為證據。
同樣對於二階視角B,B判斷的時候,也不能以自己(B)的眼睛顏色作為證據,因為B也不知道自己顏色
而對於三階視角C,當然不知道自己(C)的顏色是紅色。

所以在你(A)的這個考慮情況(注意!Q的視角是A),你(A)和B本身的顏色不能當做證據(即使你(A)知道B是紅色,B知道你(A)是紅色)。
所以在推理A--&>B--&>C的過程中實際是企圖得到X--&>X--&>C(X表示不確定(包括自己也別人)自己的顏色)。而C考慮的時候實際也是X。即:X--&>X--&>X

最終結論:在這個Q的情況,你(A)是不能確定B知道C是不是知道島上是否有紅顏色人的。更別說再高一階:A--&>B--&>C--&>A了
而遊客的信息在於:無條件給予了這個循環!無論多少階!如A--&>B--&>C--&>D--&>B--&>A--&>C....等等
同理對於N&>3也成立。
回答完畢。有錯請評論指出。


我是路人甲,在調查夜神月的島嶼神秘殺人事件時,進入了被夜神月詛咒的寫輪眼之島。算上我在內,島上一共有100個村民。在夜神月的詛咒下,我們的眼睛顏色發生了變異,島上所有的人,都無法看到自己眼睛的顏色,雖然可以看到別人的眼睛的顏色,卻無法通過任何方式告訴他們。逃離詛咒的唯一方法,便是推測出自己的眼睛的顏色後的當晚自殺,進入輪迴之谷,從而離開這個地方。若100天之後,仍然無法解開詛咒,所有的人都會被傳送到下界,在下界等待我們的只有岩漿、烈焰人和末影龍……

絕望籠罩著整個島嶼,直到今天,一個叫怪盜基德的探險家在村民集會時無意間闖入了這個島嶼。他當著說有人的面,告訴我們,我們這些人里有紅色眼睛的人。

呵呵,夜神月,你的詛咒終於潰散了。

在我所能看到的99個人里,有3個紅眼睛的人,A、B和C,剩下的96個人都是藍眼睛。

假設我的眼睛是藍色的,那麼在A的眼裡,我和其他96個人都是一樣的,也就是說,在A的眼裡,有97個藍眼睛的人,和2個紅色眼睛的人,B和C。如果A也認為他自己的眼睛是藍色的話,那麼他會覺得這個島上,只有B和C的眼睛是紅色的,其他人的眼睛都是藍色的。他可能會覺得,B也認為他自己是藍眼睛的人。他可能會覺得,在B的眼裡,這個島上只有C自己是紅眼睛的人。他會覺得B在等待C在第一天晚上自殺。

如果第二天C還活著的話,那麼在A的假設裡面,他會覺得B已經意識到了自己也是紅眼。所以A在等待第二天晚上B和C同時自殺。如果第三天,還能看到B和C的話,那麼A也會發覺,自己也是紅眼。那麼第三天晚上,A也會和B、C一起自殺。但如果,第四天,A、B、C都還活著的話,那麼,我也是紅眼了。

這個詛咒的入口,便是紅色眼睛的人看到的世界和藍色眼睛的人是不同的,紅色眼睛會少看到一個紅眼的人。也就是說,如果島上如果有4個紅眼,96個藍眼,在紅眼的人眼裡,只能看到3個紅眼。而這個差異,會使紅眼和藍眼決定自殺的時間相差一天。而怪盜基德的話,則使得「島上可能所有的人都是藍眼」的這個假設不復存在,這也是為什麼在他說出這句話之前,我們無法確定自己的顏色的原因。

夜神月,我在人間等你……


只想說一件事,規則說不允許告訴對方他的眼睛的顏色,但沒說不許八卦其他人的眼睛的顏色。

帶來的影響我還沒考慮好,明早起來想想。


其實這個島上的宗教規則有一個漏洞:它沒有規定島上的原住民能不能說「這個島上有紅眼睛的人」。

如果島上某人只說了「這個島上有紅眼睛的人」的話,其實並沒有違反第二條規則「他們不能告訴別人對方的眼睛是什麼顏色」,因為他並沒有直接告訴任何人對方眼睛的顏色。

如此一來這個多米諾骨牌的第一張就被島上的原住民推倒了。

作為一個數死早我覺得這個問題好有趣啊!!!


如果所有島民都對規則無比恐懼的話,第五天五個紅眼都會自殺,但如果他們拖到第六天且管理規則的"神"沒有做出任何反應的話,所有其他敬畏著規則的人都會自殺。這題目真心神邏輯,雖然挺複雜的但還算合理。這個島絕不是什麼可以狂歡的島,想想多恐怖的後果才會讓人自願自殺。
~~~~~~~~~~~~~~~~~~~第一次補充~~~~~~~~~~~~~~~~
補充一下題目中隱藏的條件吧,沒有這些條件很多事都不成立
島民們都相信:
1.三條規則背後是一個可以知道島民想法的「神」(杜絕了僥倖心理和心照不宣)
2.違背規則會招致比死亡還可怕的後果,即「神罰」(讓島民們寧願自殺也不願違規)
3.「神」具有不可違抗性,島民無法推翻三條規則也無法逃到島嶼之外。
4.島上有紅眼人,他們自己不知道,我也不能告訴他,也不能旁敲側擊的說自己看到多少紅眼人。
5.我不知道我是那種顏色,可能是紅眼人,但我更願意相信自己是藍眼人。
6.所有人都會像我這樣想。


藍眼人相信:
1.島上有五個紅眼人
2.這五個紅眼人也像我這樣想,所以他們相信島上只有四個紅眼人,(深一層思維)他們還相信這四個紅眼人相信島上只有三個紅眼人,(深一層)這三個紅眼人會相信島上只有兩個紅眼人,(深一層)這兩個紅眼人會相信島上只有一個紅眼人,(深一層)這一個紅眼人會相信島上包括自己全都是藍眼人。

紅眼人相信:
1.島上有四個紅眼人
2.這四個人也會像我這樣想,所以他們相信島上只有三個紅眼人……以此類推。

這些島民的智商真是突破天際,一個個都有N層思維,每多一個紅眼人就要多一層思維。
當旅行者告訴他們有紅眼人的時候,人們第六層思維中的那個相信沒有紅眼人的紅眼人就不存在了,一直到第五天早晨,紅顏人們發現四個紅眼人都沒有自殺,就會在當天晚上自殺。這時候藍眼人的神經也綳得緊緊的,因為再過一天沒人自殺就證明他們自己也是紅眼人了,然後95個藍眼人會全部自殺。

頭一次寫這麼長的答案,分析中感覺好像缺了一步,求指點@張石敧
ps:@pansz 島民並不是無法交流,只是在眼睛顏色這一點上無法交流,日常生活中應該早已了解到所有人的思維。


-
在深夜看到這樣一個非常有趣的問題,一下子睡意全無。同時,這個問題也讓我在接下來的思考過程中備受煎熬,而又樂在其中。

最終,我的答案是這樣的:

當旅行者說「你們這裡有紅眼睛的人」時,產生了兩個效果

一,提供了這句話所包含的信息

二,提供了說話這個行為本身

這句話所包含的信息,當然是無效的。

但是,旅行者提供了說話這個行為本身,讓數學歸納法的第一步(n0 = 1 時的情況)得以成立,使得島民的推理可以從此刻展開,推導出一條死亡的鏈條。
-


旅客說的「你們之間有紅眼睛的人」這句話很有意思,它識圖填補一個屬於題目漏洞的未知項,也就是這個規則設定之初的那一天是哪天,由誰設定。

顯然原題目將「知道自己是紅眼睛自殺」改為「知道自己眼睛顏色而自殺」也是想填補這個漏洞

但是還是無濟於事的,因為在紅眼睛只有5人的設定下,紅眼睛的人明顯知道自己在100人當中屬於少數,那麼紅眼睛群體必定會在藍眼睛群體發現自己眼睛顏色之前集體自殺。

規則設定的第一天,藍眼睛的群體就會觀望紅眼睛群體,而紅眼睛群體也會開始出現第n天集體自殺的情況。

所以將「知道自己是紅眼睛自殺」改為「知道自己眼睛顏色自殺」也僅僅是藍眼睛群體要不要在第n+1天自殺的區別。

總結:島民在知道這個規則的第一天開始就會出現紅眼睛群體第n天自殺,藍眼睛群體第n+1天自殺的情況。因為我們都知道在旅客來之前並沒有出現第n天紅眼睛集體自殺的事情,那麼旅客的到來不過是提醒了島民紅眼睛要自殺的規矩,但我們都知道這是不需要提醒的,必須是無條件遵從的。所以對原題來說旅者的話無意義


極端應該反過來考慮,如果島上全是藍眼睛,然而旅客卻說謊,說你們間有紅眼睛啊。

然後所有人都看到別人是藍眼睛,於是就會認為整個島上的只有自己是紅眼睛,結果整個島上所有人第一天晚上就全自殺了?


這幾天作業剛好是這道題,所以和老師討論了下。作業在情景這個方面做的更好。老師提出了這樣一種看法,當紅眼大於一時,每個人都為一個相對個體。你眼中只有你眼中的世界。及你不知道別人是怎麼看的。有點像我們常說的常識。因為大家暫且處在我不知道你知不知道的階段,所以上島的人讓島民知道其他島民也知道這個背景。


推薦閱讀:

你為什麼選擇讀數學系?
鐵軌的彎道曲線都是什麼曲線?
石頭剪刀布,反悔繼而提升遊戲次數後獲勝的概率?
數學系學生的你,有哪些課程覺得自己沒學明白?

TAG:思考 | 數學 | 邏輯 |