看Matrix67大牛的網誌,讓我學到了一個思維方式,那就是從最簡單的情況開始考慮。
在大家開始看答案之前,我必須指出:因為題目中沒有「每個人都知道其他人也很聰明」這個條件,所以, 不會出現A選96顆豆子這種情形 。
下面是分析:
假設有3個人ABC,10個豆子,其他條件不變。
一開始B是非常緊張的,他開始了思考。
對他來講,有上中下三種策略
- 上策:自己活著
- 中策:全部死光光
- 下策:自己死了,但有其他人活著。
然後他就開始預測A的行為:
- A如果拿8顆豆子,B拿1顆豆子,C拿1顆豆子。全死。
- A如果拿7顆豆子,現在輪到B做選擇了
- B如果拿1顆豆子,C不敢拿1顆,必然拿2顆。C獨活。
- B如果拿2顆豆子,C只能拿1顆,B獨活。
- 因為B是個理性人, B這個小婊砸一定會拿2顆 。AC死了。
-
A如果拿6顆,B就拿3顆;A如果拿5顆,B就拿4顆。都是B獨活,AC死。(我真的不是在黑A站)
- B已經找到了規律,那就是,讓自己拿的數量在AC之間,就可以保證活。想到此處,他不由得笑出聲來。A冷冷的看了他一眼。
- A如果拿4顆,現在輪到B做選擇了。
- 如果B拿5顆,C只能拿1顆,A獨活,BC死。
- 如果B拿4顆,C不論拿幾顆,都是三人同死。
- 如果B拿3顆,C在得知前兩人共拿7顆的情況下,選擇拿3顆,三人同歸於盡。
- 如果B拿2顆或1顆,C會選擇拿3顆,C獨活。AB死。
- B驚奇的發現,不管怎麽選,自己都會死 。他是不會選擇讓C這個小婊砸活著的。
- 於是B選擇了拿3顆。
- A如果拿3顆,B略微思索了一下,也會選擇三個人同歸於盡。
- A如果拿2顆,B會拿3顆,但是C哈哈一笑(C已經習慣了在B的腦洞中死亡),他不拿5顆,也不拿4顆,也不會拿1顆,他拿了3顆。三人同歸於盡。
- A如果拿一顆,那麽(感謝 @胡昌俊 指正)
- B選1顆,3人同死
- B選2顆,CC會選擇三人同歸於盡。
- B選3顆或以上,C選AB的平均數。AC活,但B死,所以B不會做這個選擇。
但是A也思考了上述的全部過程,A悲催的發現。如果B很聰明,不管自己怎麽選,都是個死(對,你去上面仔細看看,我們已經列舉了所有的情況)。既然這樣,A把希望寄托在B不是很聰明上面,他微微一笑,選了4顆豆子。
ABC卒。
我們歸納出一個定理: 如果3個人有n個豆子,n\gg 3 ,且A不知道B和C是不是理性的,他可以選擇[n/3] ,如果ABC三人都是理性的,他們會同歸於盡。
時光荏苒,有個變態又抓到了4個人,ABCD,然後給了他們20顆豆子。
我們繼續從如果A拿20顆豆子開始分析。啊,不,還是直接寫結論吧。
- 當A選擇17個時,同歸於盡。
-
當A選擇16到6個時,B活著。A死。
- 當A選擇5時,B選4,C選4,D選擇4和大家同歸於盡。
- 當A選擇4時,B選5,C選4,D選擇4和大家同歸於盡。
- 。。。
- A發現自己必死。於是他拿了5顆豆子,他寄希望於其他人高尚一些。
- ABCD卒。
轉眼到了2015年,題主抓住了5個人,給了他們100顆豆子。第一個人深吸一口煙,吐出個煙圈, 他拿了20個 。
====程式設計師的分割線===
後來我又寫了個程式,模擬了如下狀況:
假設所有人都假設其他人的選擇是隨機的(可能是因為每個人都假設其他人可能是聰明人,笨的人,高尚的人,自私的人,抑郁癥患者等),那麽在所有的樣本空間裏(75287520種可能性),做出最有利於自己的選擇:
100 left for A
A will chose 10
90 left for B
B will chose 11
79 left for C
C will chose 11
68 left for D
D will chose 10
58 left for E
E will chose 10
源碼在此
math/a.c at master · picasso250/math · GitHub