關於計算與算計的遊戲
前幾年我看過一本叫做《幻世之刺客傳說》的網遊小說(別看,巨坑),小說里,每個用戶在虛擬遊戲中創建賬號時,除了選擇種族、職業之外,還要參與這樣一個互動遊戲:
從1到100之間選擇一個數字,如果所選數字接近系統中所有玩家所選數字平均數的三分之二,可獲得系統的隨機獎勵。
讀到這兩行遊戲規則,我想大部分人的反應會和我一樣,那就是再讀一遍。這個遊戲並不需要玩家對題目進行計算,所需考慮的,只是其他玩家將會如何選擇。也就是說,算出答案,就是這個遊戲的題目本身。
不妨先假設所有玩家的答案會平均分布在1-100的範圍之內,那麼平均數就是50左右,而平均數的三分之二則是33。可是問題並沒有到此為止:33這個數字並不難算,如果大家都知道33是最佳的選擇,答案又怎麼會平均分布在1-100之間?如果大家的答案都在33附近,平均數的三分之二豈不是成了22?而進一步地,如果大家都算出了22這個數字,所選答案都是22左右,平均數的三分之二又會變得更小。
只要這個念頭一起,想像中的平均數就會不斷地以指數衰減,一層層遞歸猶如層層瀰漫不清的煙圈,在虛空中凝結成了一個謎局:別人的遞歸會停止嗎?我應該停止嗎?遞歸會收斂到,可是真的會有人選嗎?
還是後退一步,不做任何假設,進行更穩妥嚴謹的推理為妙。所有人的答案都在1-100之間,所以平均數絕不可能大於100,平均數的三分之二不可能大於66。所以選擇66以上是絕對不可行的。沒有人會選擇66以上的數字,那麼平均數應該不會大於66,三分之二的話是44,選擇44以上的數字絕非明智之舉。那麼繼續,幾乎所有人都會把答案限制在44以下,所以平均數的三分之二應該小於29。於是,29,19,13,9,6,4,3,2,1,0………遞歸的魔鬼再一次露出了它的爪牙,無窮次的遞歸真的可以成立嗎?如果不能成立,問題到底出在哪裡?
美國邏輯學家劉易斯在1969年提出了「公共知識」的概念,他認為,某種東西要成為甲和乙之間的「協約」,就必須成為甲和乙的公共知識,也就是說,甲乙不僅自己要知道,而且要知道對方知道,還要知道對方知道自己知道,還要知道對方知道自己知道對方知道……這是一個無窮的過程。只有所有這些層次的「知道」同時滿足,這份協約才能成為甲乙的「公共知識」,否則就只是「共有知識」,即雙方都知道,但不知道彼此知道的知識。
讀過《三體》的同學一定對「猜疑鏈」這個概念印象深刻(消滅人類暴政,世界屬於三體!誤)。在科幻作家劉慈欣的筆下,相距遙遠的兩個文明難以探知彼此的虛實,難免會相互猜疑,進而引發不可避免的相互消滅。兩個文明要實現和平,保持默契,不僅其自身必須是熱愛和平的文明,而且必須知道對方也是熱愛和平的文明,否則為求自保,只好先下手為強。但這還不夠,雙方還必須知道對方知道自己熱愛和平,還必須知道對方知道自己知道對方熱愛和平,必須知道對方知道自己知道對方知道自己熱愛和平………
層層的猜疑猶如冰冷的鎖鏈,將宇宙中的交流禁錮在一個文明之內,不同的文明猶如在黑暗森林中遊走的獵人,不說話,不發光,只是靜靜地消滅所有的活物。在光年甚至更加廣闊的尺度下,遙遠的文明永遠無法有效交流,因此共有知識不會成為公共知識,推測他人的想法也就不再可能。
(下圖是三體世界派來的水滴以及人類世界的恆星級艦隊23333)
猜數字的遊戲也是這樣的。幾乎所有人都知道66以上的數字不可以選,這一點可以看做是共有的知識。但是大家如何知道別人知不知道這個知識?即使每個人都知道別人知道66以上不能選,又如何保證每個人知道別人知道每個人都知道66以上不能選?
無窮迭代的條件並不能滿足,因為公共知識不存在,而共有知識並不具備無窮次迭代的特徵。
說到這裡,似乎這個遊戲已經無法可解了,其實不然。玩家永遠無法找到一個終極的正確答案,但每次遊戲的玩家不同,不同的玩家們會選擇不同的結果,進而產生一個只適用於該次遊戲的正確答案。
說穿了,這個遊戲就是在評估其他玩家的想法,有多大比例的人會想到第一步,有多大比例的人會想到第二步,有多少人會這樣想,有多少人會那樣想。贏得遊戲的人,會是那個最懂得其他玩家的想法的人。
諸葛亮就是這樣的人。
小時候我一直不明白,華容道截住曹操真的能說明諸葛亮聰明絕頂嗎?當時赤壁之戰,舳艫千里的曹軍被燒得丟盔卸甲,曹操帶著一隊人馬逃到華容道。華容有兩條道,一條大道,一條高山小路。諸葛亮派關羽到小路上埋伏,還特意放起烽煙,曹操望到,便往小路走。
曹操的手下問他:有烽煙就是有埋伏,為什麼還要過去送人頭?曹操卻說:兵法講究虛實,虛則實之,實則虛之。諸葛亮在小路放煙,是故意放給我們看,好讓我們往大路走,我偏走小路,不中他的計。
關羽出發前也和諸葛亮討論過,他很納悶:我在小路放煙,曹操看見就知道有埋伏,他如何肯來?諸葛亮卻說:關將軍不知道兵法虛虛實實之論嗎?曹操懂得用兵,看見小路煙起,肯定認為我虛張聲勢,引他走大路。他偏走小路,正中我的計。
小時候的我並不認為這說明諸葛亮有多聰明,他只是運氣好而已。曹操如果只想到第一步,有烽煙就是有埋伏,就會走大路,關羽撲空。如果想到第二步,虛則實之,實則虛之,那他會走小路,關羽成功。如果再多想一步,諸葛亮故布虛虛實實的迷陣,虛則虛之,實則實之,那他會走大路,關羽撲空。如果再多想一步,諸葛亮知他以虛為虛以實為實,故而虛仍實之,實仍虛之,那他會走小路,關羽成功。所以我那時以為,關羽是否能夠成功,完全取決於曹操的反應,並不是諸葛亮算計得好。
只是我那時畢竟還小,不懂得玩家也是遊戲的一部分,甚至在這種博弈遊戲中,玩家會是遊戲中最為重要的一部分。諸葛亮知道曹操的智力和計謀處在什麼水平,曹操卻不知道諸葛亮,曹操以為諸葛亮最多想到第一步,可諸葛亮卻明白曹操想不到第二步。掌握了其他玩家的策略,就掌握了克敵制勝的關鍵。孫子曰:「知己知彼,百戰不殆;不知己而知彼,一勝一負;不知己不知彼,每戰必殆。」古人誠不我欺也。
為了模擬這個遊戲,我在朋友圈裡發了兩條一模一樣的遊戲規則:「從1到100之間選擇一個數字留在評論區,最接近所有評論的平均數的三分之二的人,可以獲得紅包。」
兩次遊戲的不同之處在於,在第二條朋友圈裡我加了一句「請注意,在上一輪遊戲中,獲勝者選中的數字是18。[機智]」
兩次遊戲的結果分別如下。
圖中橫坐標的每個數字,代表1-5,6-10,11-15這樣一個長度為5的區間,一共20個區間。縱坐標是所選數字落在每個相應區間的玩家人數。
可以觀察到,第一次遊戲中,峰值落在第五個區間,也就是21-25之間。而第二次遊戲的峰值落在第三或第四個區間,也就是11-20之間。前後兩次遊戲規則相同,但大家的策略顯著改變了,為什麼呢?
因為公共知識出現了。
我在第二次遊戲中註明了第一次遊戲的結果是18。我所說的話,每個人都能看到,並且每個人都知道其他人也會看到,且每個人都知道其他人也知道每個人都會看到,而每個人都知道其他人也知道每個人都知道每個人都會看到………這是一個無窮的過程,由於我對這一知識進行了公共宣告,這個知識就成了所有玩家的公共知識。
既然第一次遊戲以18為結果,那麼就一定有相當比例的人已經意識到了多層迭代的可能性,而這一可能性本身,也就由於遊戲組織者的宣告,成為了接近於公共知識的存在。既然多層迭代的可能性從共有知識朝著公共知識的方向邁了一步,那麼玩家們選擇的峰值也就繼續迭代一層,降到了更低的水平。
可是事情並不是到此就結束了:第二次遊戲出現了一些攪局者。
觀察分布直方圖,可以看到統計結果出現了嚴重的右偏,在鐘形曲線的右尾上出現了幾個極端的大數,經過計算得出,這個分布相對於正態分布的「偏度」已經達到了1.9,這說明一些極端數據的存在會使平均值右移,偏離於峰值。
這些極端值是怎麼產生的呢?4個100,1個94,他們就是來攪局的。第一次遊戲沒有出現攪局者,因為大家不知道別人會不會認真對待這個遊戲,感興趣的好友會選擇認真遊戲,不感興趣的好友會選擇直接翻過去,繼續刷朋友圈。如果沒有人關注,攪局者沒有必要展現與眾不同的幽默。第二次遊戲則不同,他們已經知道許多人都參加了第一次遊戲,也知道參加第二次遊戲的人都很認真地想獲得勝利,即使沒有參加遊戲的人也會多多少少關注一下這條朋友圈的評論區。在此時填上一個100,有一種以一己之力改變遊戲結果,影響其他玩家人生軌跡(誤)的成就感。
雖然這部分人很少,但他們選擇的數字都很大,53個人里出現4個100,直接將平均數拉高了6,確實很大程度上改變了遊戲結果。這說明,在一個充滿風險的遊戲中,不僅要合理地估計峰值和方差,也要將一些可能出現的3σ以外的「黑天鵝」事件考慮在內。黑天鵝事件不常發生,但一旦發生,就將是影響整個遊戲邏輯的大事件,所以不能輕易地假設遊戲結果滿足正態分布,在選擇策略的時候除了峰值和方差之外,峰度和偏度也是一定要考慮的重要因素。
博弈遊戲通常都很有趣,各位看官,尤其是這兩次遊戲的玩家,如果有什麼想法或感慨請在評論區隨意吐槽hhhhhhh
(最後放個埃舍爾鎮樓)
TAG:有時言語 |