眼睛的颜色 博弈
其實也不能算是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個紅眼睛會一起自殺。具體到本題就是,到了第五天,這五個紅眼睛一起自殺。
看到有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====
從小到大,我們一次又一次地被旁人這樣教訓:「噓,別說了,小心點。況且這種事誰不知道啊,還要你說?說出來又有什么用呢?你有力量改變它嗎?」久而久之,我們越來越習慣于把「你懂的……」掛在嘴邊,習慣于對房間里的大象視而不見,選擇性遺忘了一個我們其實早就知道的重要事實:「大聲說出來」跟「彼此心照不宣」有著決定性的區別。我們不是沒有力量。一條恰當的宣言,哪怕它的內容只不過是「我知道」這么簡簡單單的一句話,也有可能引起整個社會的信念結構的根本改變,讓許許多多人斷然行動起來。這就是我們每一個人的力量。拓展:
關于紅眼睛藍眼睛自殺問題,陶哲軒教授又問:旅者如何挽回自己說的話? 關于紅眼睛自殺問題的引申,如果在自殺日到來之前有紅眼睛自然死亡,會怎樣?思考:
這個問題在現實中有哪些應用場景?
轉載于:https://www.cnblogs.com/CtsNevermore/p/5998983.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: 作业1--求100内的奇数。
- 下一篇: 关于变量作用域的一点整理