上篇文章講到乙個悖論,這裡解開悖論的什麼面紗
「遊客沒有輸入任何新的資訊」這個斷言是錯的。
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種情況:假如沒有遊客來公開宣告「島上有紅眼」,那麼a永遠無法判斷上述哪一種是真的。由於島上所有人都做出同樣的推理(藍眼島民推出的情形多一種),所以每個人都無法判斷自己眼睛的顏色,大家都不用去死。1、我是紅的;
2、我是藍的,且b自認為是紅的;
3、我是藍的,且b自認為是藍的,且b認為c自認為是紅的;
4、我是藍的,且b自認為是藍的,且b認為c自認為是藍的,且b認為c認為d自認為是紅的;
5、我是藍的,且b自認為是藍的,且b認為c自認為是藍的,且b認為c認為d自認為是藍的。
而一旦公開宣告「島上有紅眼」,a立刻知道「b知道c知道d知道島上有紅眼」,因此可以立刻排除5;當晚沒人死,因此第二天可排除4;第三天排除3;第四天排除2只剩下1,因此a在第四天晚上自殺。b, c, d也都做出完全一樣的推理,所以也都在第四天晚上自殺。
====補充====
有人提到,這道題的乙個必要前提是島上的人要完全信任這個遊客。這很對,但還不夠。不僅每個人都要相信該遊客,而且還必須每個人都知道每個人都知道……每個人都知道每個人都相信該遊客。即「遊客完全可信」這件事本身也必須是乙個公共知識。只有這樣,遊客的宣告才會具備使共有知識轉變為公共知識的力量。
====補充2====
從小到大,我們一次又一次地被旁人這樣教訓:「噓,別說了,小心點。況且這種事誰不知道啊,還要你說?說出來又有什麼用呢?你有力量改變它嗎?」久而久之,我們越來越習慣於把「***……」掛在嘴邊,習慣於對房間裡的大象視而不見,選擇性遺忘了乙個我們其實早就知道的重要事實:「大聲說出來」跟「彼此心照不宣」有著決定性的區別。我們不是沒有力量。一條恰當的宣言,哪怕它的內容只不過是「我知道」這麼簡簡單單的一句話,也有可能引起整個社會的信念結構的根本改變,讓許許多多人斷然行動起來。這就是我們每乙個人的力量。
B樣條的乙個問題的試探(續)
用數學歸納法能夠證明b樣條插值演算法的正確性,但比較繁複,限於篇幅不做討論。有關b樣條插值演算法正確性反而是在matlab實現中發現的,以下列出目前插值演算法實現 function new vertices,new knots mybspline insert vertices,knots,new ...
關於yaf的控制器命名,乙個糾結的問題(續)
loader相關的步驟,已經補上!what 我們要達成什麼樣的目標?1 修改yaf控制器的命名規範,如zf一樣 控制器類名 模組名 控制器名controller 檔案命名不變。2 為了相容以前預設模組中的 在預設模組中,控制器命名規則使用yaf預設的規則,即 控制器類名 控制器名controller...
乙個關於 include的問題
2001年05月03日 12 04 00 乙個關於 include的問題 趙湘寧 問題 我試圖將乙個標頭檔案包含在工程的資源檔案中。為此在.rc檔案中新增了如下一行 include myfile.h 雖然執行沒有問題,但是每次在visual studio中開啟資源時,它都把這一行 刪除掉了。我之所以...