看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