当前位置: 华文问答 > 数码

五个囚犯先后从100颗绿豆中抓绿豆。抓得最多和最少的人将被处死,不能交流,可以摸出剩下绿豆的数量,谁的存活几率最大?

2016-05-06数码

看Matrix67大牛的博客,让我学到了一个思维方式,那就是从最简单的情况开始考虑。

在大家开始看答案之前,我必须指出:因为题目中没有「每个人都知道其他人也很聪明」这个条件,所以, 不会出现A选96颗豆子这种情形

下面是分析:

假设有3个人ABC,10个豆子,其他条件不变。

一开始B是非常紧张的,他开始了思考。

对他来讲,有上中下三种策略

  1. 上策:自己活着
  2. 中策:全部死光光
  3. 下策:自己死了,但有其他人活着。

然后他就开始预测A的行为:

  1. A如果拿8颗豆子,B拿1颗豆子,C拿1颗豆子。全死。
  2. A如果拿7颗豆子,现在轮到B做选择了
    1. B如果拿1颗豆子,C不敢拿1颗,必然拿2颗。C独活。
    2. B如果拿2颗豆子,C只能拿1颗,B独活。
    3. 因为B是个理性人, B这个小婊砸一定会拿2颗 。AC死了。
  3. A如果拿6颗,B就拿3颗;A如果拿5颗,B就拿4颗。都是B独活,AC死。(我真的不是在黑A站)
  4. B已经找到了规律,那就是,让自己拿的数量在AC之间,就可以保证活。想到此处,他不由得笑出声来。A冷冷的看了他一眼。
  5. A如果拿4颗,现在轮到B做选择了。
    1. 如果B拿5颗,C只能拿1颗,A独活,BC死。
    2. 如果B拿4颗,C不论拿几颗,都是三人同死。
    3. 如果B拿3颗,C在得知前两人共拿7颗的情况下,选择拿3颗,三人同归于尽。
    4. 如果B拿2颗或1颗,C会选择拿3颗,C独活。AB死。
    5. B惊奇的发现,不管怎么选,自己都会死 。他是不会选择让C这个小婊砸活着的。
    6. 于是B选择了拿3颗。
  6. A如果拿3颗,B略微思索了一下,也会选择三个人同归于尽。
  7. A如果拿2颗,B会拿3颗,但是C哈哈一笑(C已经习惯了在B的脑洞中死亡),他不拿5颗,也不拿4颗,也不会拿1颗,他拿了3颗。三人同归于尽。
  8. A如果拿一颗,那么(感谢 @胡昌俊 指正)
    1. B选1颗,3人同死
    2. B选2颗,CC会选择三人同归于尽。
    3. 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颗豆子开始分析。啊,不,还是直接写结论吧。

  1. 当A选择17个时,同归于尽。
  2. 当A选择16到6个时,B活着。A死。
  3. 当A选择5时,B选4,C选4,D选择4和大家同归于尽。
  4. 当A选择4时,B选5,C选4,D选择4和大家同归于尽。
  5. 。。。
  6. A发现自己必死。于是他拿了5颗豆子,他寄希望于其他人高尚一些。
  7. 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