看Matrix67大牛的博客,让我学到了一个思维方式,那就是从最简单的情况开始考虑。
在大家开始看答案之前,我必须指出:因为题目中没有“每个人都知道其他人也很聪明”这个条件,所以,不会出现A选96颗豆子这种情形。
下面是分析:
假设有3个人ABC,10个豆子,其他条件不变。
一开始B是非常紧张的,他开始了思考。
对他来讲,有上中下三种策略
然后他就开始预测A的行为:
但是A也思考了上述的全部过程,A悲催的发现。如果B很聪明,不管自己怎么选,都是个死(对,你去上面仔细看看,我们已经列举了所有的情况)。既然这样,A把希望寄托在B不是很聪明上面,他微微一笑,选了4颗豆子。
ABC卒。
我们归纳出一个定理:如果3个人有n个豆子,,且A不知道B和C是不是理性的,他可以选择,如果ABC三人都是理性的,他们会同归于尽。
时光荏苒,有个变态又抓到了4个人,ABCD,然后给了他们20颗豆子。
我们继续从如果A拿20颗豆子开始分析。啊,不,还是直接写结论吧。
转眼到了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谢邀。
这道题怎么做,取决于我们如何从数学的角度理解题干中这句话:
“他们的原则是先求保命,再去多杀人”。
我的理解是:
假设我的理解正确,那么,这道题将会有一个可怕的答案。
定义:
为第
个人取走的绿豆数,而
为前
个人取走的总绿豆数
引理 1:
当
个人 (
) 取过绿豆时,如果被取走的绿豆数满足
则第
个人应该取
颗绿豆’
证明:
这个方案,可以确保自己不死,同时剩下未取豆子的人死亡概率最大。
其中:
由于
, 有
, 这不仅保证了自己取的豆子数不是最多的,并且其他人不可能都取到那么多,所以自己必然存活;
数学上的解答,各位大牛已经详尽了。此题还有逻辑上的简便方法。以及,数学之外的思考。
(看我的答案前,最好先看过其他大牛的数学解答。才不至于对例子陌生。)
题干有个条件:“不能交流”。由于假定每个囚犯都无比聪明,所以交流与否,不影响最终决策。去掉“不能交流”,答案不会有任何变化。
当五个囚犯经过推理,都认定自己必死的时候,有人开始琢磨:
我的推理,都是建立在个人决策的基础上,假如可以结盟呢?我找两个人结盟,把剩下两个人搞死,不就可以了吗?
想到这里,a不禁沾沾自喜,看到了绝处逢生的希望,他对b、c、d、e说:我虽然不能让你们生,但保证能让你们死。(如果我给你们每人留1个,你们都会死。)现在,上头要求至少提供两个死的名额,你们商量出个方案,只要保证我100%不死,我就配合。如果不能保证,谁也活不了。
b听了,扭头对c、d、e说:上头要求至少提供两个死的名额,a不能死,我也不能死,你们仨商量具体操作方案,如果谁能让我、a、他都100%不死,同时,又让其他二人无论如何选择都无法左右我们三人的结盟,我和a就照办。如果不存在,你们仨都会死(给你们都留1个)。
c对d、e说:上头要求至少提供两个死的名额,a、b、我,都不能死……
d、e说:开什么玩笑,你的意思不是让我俩死吗?你们爱谁死谁死!
a、b、c恍然发现,结盟的可能并不存在。
不存在一种结盟可以保证某人必活。
这个结论可以推广:
100个囚犯先后从10000颗绿豆中抓绿豆,抓得最多和最少的人将被处死——
结果一样:所有人都会死。
10000个囚犯先后从100000000颗绿豆中抓绿豆——
仍然一样:所有人都会死。
围观者曰:开玩笑吧?只是从10000人里挑最少和最多的,竟然每个人都会死,太可怕了吧?
答曰:是的。为什么如此残酷?在于假定前提——
“每个人都利己,即便不利己,也要损人,损人意味着局部利己。”
这样的假定下,唯一的结果就是大家都死。假如世界上每个人都是先求利己,利己不成的情况下求损人的话,世界马上就完蛋,谁也活不了。
既然如此,为什么我们现在活得好好的呢?
因为真实的世界放松了假定。放松的第一处是:并不是每个人都绝顶聪明。第二处是:每个人也许都想利己,但不是必然要求损人。
现在考虑,其他条件不变,一点点放松第二处假定,看结果如何变化:
a想:唉,我这么聪明的人,竟然必有一死,既然横竖都是死,别人死不死关我鸟事,随便抓一把,去他娘的!
抓了一把,一看:5个。
轮到b,b一摸,发现a抓了5个,心想:
哟,这家伙居然不是心黑到顶。我最利己的抓法是几个呢?4个。(分析略,可见楼上诸答。)
如果我抓4个,c、d、e会抓几个?都是4个。
(5、4、4、4、4)
结果是,大家都死掉。
想到这里,b倒吸了一口冷气:想不到我这么聪明的人,即便a不陷害,也逃不了一死,真是天命、天命啊!随便抓吧。
抓了17个。
剩下c、d、e,没得选了,出于利己优先的原则,都选平均数,抓11个。
(5、17、11、11、11)
a、b都死了,后三人活了。
这意味着,只要前面两人不存心害人,后面人就能活得很好。但先行者的牺牲是难免的。
原始人问现代人:凭啥我们茹毛饮血你们吃香喝辣?
现代人说:凭你投胎早啊。
原始人说:老子得不到的,孙子们也别想得到。——不繁殖了。就没有现代人了。
但要注意:b的死亡跟a还不一样。a的死亡,在放松假定后很容易避免。b的死亡,则难以避免,并有最大的悲剧意义。
在a随机抓了5个的情况下(假定a抓5个是为保证剩下的绿豆够前人的平均数,正因为有不够平均数的可能,b有能力拯救a,详论见后):假如b抓的比a多,他一定是因为抓得最多而死掉。假如b抓得比a少,他一定是因为抓得最少而死掉。后来者仅仅出于利己,就会都选平均数。哪怕cde只为利己,不为害人,b都非死不可。
a的死看起来和b类似,其实有重要不同。a可以用他的死彰显自己的高尚或卑劣:
轮到b时,b发现a抓了96个,破口大骂:王八蛋,自己死就死了,还要拉上俺们垫背!真是烂人!
轮到b时,b发现a只抓了1个,感慨万千:好人呐,好人。脱离了低级趣味的人。
但是,a抓1个,虽然给其他人留了活命机会,但无论如何救不了b。b最利己的抓法,是抓2个,那么接下来,c、d、e、会毫不犹豫地都抓2个,同时破口大骂:b这个王八蛋!
因为(1,2,2,2,2),所有人都要死。如果前两人只抓3个,无论如何,后三人死的责任都在b头上,哪怕a抓2、b抓1,c、d、e也是必死,他们的死,都是b导致的。(如果b抓50个就不会令他们都死。)
b不管怎么抓,自己都得死。而且,没有办法证明自己是个好人。b出于利己抓2反而损害了自己:非但不能活,还招来一堆唾骂。
b叹了一口气:既然横竖是死,与其死了挨骂,不如死了有人记得我的好。
抓了50个。
轮到c,发现筐里剩下45个,掐指一算,ab的平均数是27.5,他毫不犹豫地抓27。
轮到d,发现还剩18个,他想抓平均数27,不够了,只好抓了17个。心里对e说,兄弟,对不住了,不是有意要害你,哥哥自身保命要紧。
(5、50、27、17、1)
b救了a、c、d,牺牲了自己。
c并不知道,自己的命是b救的,他抓的时候还怀疑ab分别抓了(28、27)。d也不知道b救了他。e就更不知道了。
b的善意没人知道。——除了a。
当a发现自己最终没死的时候,被b感动得痛哭流涕:好兄弟!
换言之,如果a足够聪明,他会想到,他的生死,可能决定在b手里。
比如:a抓5个,b有办法让a必活(抓90个)。
但是,这种决定,需要一个前提,即:b有报恩心态。
我们定义一下报恩心态:
弱报恩心态:如果别人表现出对我好,在不影响自利的前提下,我选择对他好。
强报恩心态:如果别人在可以对我坏的情况下,选择不对我坏,在不影响自利的前提下,如果我可以对他坏或不对他坏,则选择不对他坏。
由于报恩心态在世间是真实存在的,所以a存活的几率很大。
a只要不杀b,放b一马,b虽知必死,只要有强报恩心态,a就必活。
但世间存在的弱报恩心态比较普遍,强报恩心态相对较少。——如果我活着,让我对你好当然可以,我都死了,对你好不好我才不在乎呢。
换言之,a的存活取决于b是否具备强报恩心态。而bcde是否必死,取决于a是否追求损人。
如果,a是个平庸但不卑鄙的人(只追求利己,不追求损人),则在后继者b有强报恩心态的情况下,会享受到先行者的红利。否则,a会成为死在沙滩上的前浪。
所以,在真实的社会模型中(利己但未必损人的假定下),a一定不会选择抓96,让所有人都死掉。
而b,无论如何,既无法享受先行者的红利,也无法避开后继者的迫击,后人仅仅出于自利就会把他弄死,除了先行者感谢他的不杀之恩外,没有人念他的好。
我们可以把这叫做:“老二的悲剧”。
现在假定,a是高尚的人。
先给高尚一个定义:
弱高尚:如果可以自利,就自利。如果不能自利,利人也好。(这个定义并不严密,因为有时候自利牵涉到损人,严密的定义太复杂,故从略。另外,报恩心态,也算是弱高尚的一个具体例子。)
强高尚:利人和自利无区别。
强高尚在世人身上鲜少存在,一般只存在于有血缘关系的近亲或有宗教信仰的人身上。弱高尚则相对普遍。
假定a是弱高尚的人,他意识到,在世界上不存在其他高尚的人的情形下,自己难逃一死。既然横竖都是死,不如,做个高尚的人。
a选择只抓1个。
这就意味着,a以一己之力,让全世界牺牲的概率最小。
但,这仅仅是概率。a的力量有限,他还需要另一个人的成全。
假如b是庸俗的人,会选抓2个。
c、d、e都是庸俗的人,都只抓2个。
(1,2,2,2,2)
全都死掉。a虽然愿意拯救世界,但落空了。
但只要,b、c、d、e里,有一个人,愿意抓50个,就能救所有的人,除了自己和a。
a的死,是求仁得仁。自己的死,是舍生取义。
因为有两人选择主动牺牲,其他人都可以得救。
假如70亿人,先后从1000亿绿豆中抓绿豆,最多的和最少的会死掉的话,
只要存在2个以上高尚的人,世界就会得救。
地藏菩萨云:地狱不空,誓不成佛。我们所处的世界并非不险恶,不逐利。但之所以没有塌陷,还能支撑许多庸凡的人平静地生活,正因为有聪明绝顶的人,在觉悟了世界的冰冷和绝望之后,自甘做出牺牲来消融世界的冰。
第一个人拿 100 个,然后游戏无法进行下去(要求每人至少拿一个)。
抛出 NoBeanLeftBeforeLastPrisonerException 异常中断了游戏,大家都活了下来。
-------------------------我是题目被改了的分割线-------------------------------------------------------
题目改了让人情何已堪。
反正第一人有办法让大家团灭,除非有神奇的原因能使第一人的存活概率不为0,否则就是团灭
囚徒困境
首先平均数是20,第一个人如果拿了超过20,那么后面的人就有办法可能搞死他,比如他拿21,后面3个人绝对会拿20,最后一人只有19,1和5死。第一人如果拿低于20,那就反过来,还是第一人死。这样的话,第一人就把脑袋放到了别人手中。
第一人只有一种办法可以把脑袋放自己手中,那就是拿20。其他人也是同理,只能拿20,于是5个人一起死。
————————————9月30日分界线——————————
介于有人看不懂,我多解释一下
首先大家要明白平均数有什么特点,平均数的特点就是,要么大家都一样,要么就肯定有人比我多,也肯定有人比我少。
每一个人都希望拿到平均数,因为这样活下来的几率会最高,因为除非大家拿一样多一起死,否则自己就能活下来。
当然了,如果能知道前面的人拿了多少,我只需要拿他们中间的数就行了。
对于第一个人来说,他前面没有人,他只能猜后面的人会拿多少。由于一共5个人,所以他拿20最保险。
而对于第二个人来说,他知道第一个人拿了多少,所以他的选择就是,如果第一人超过20或者低于20,则第二人只需要拿20就肯定能活;如果第一人拿20,这时候的第二人将面临和第一人相同的处境,他也只能拿20,将活下来的希望寄托在后面有SB上。
具体的计算公式是:
先计算前面的人的平均数,也就是用少了的豆子数去除前面的人数,如果前面的平均数不是20,那么本人的生存几率会大增,此人的最优解就是拿他们的平均数。
如果前面没有人,那就拿所有人的平均数,寄希望于别人犯错。
有的人说可以不拿完,太天真了。因为如果不拿完,肯定有人拿了比20少的豆子,假设有人拿了18个,这个人如果是最后一个人,那么他就是找死。如果不是最后一个,那老天保佑呀,最后一个人有选择的权力了。他只需要拿19个就可以活下来,而那个少拿的人就是找死。(还有种情况是中间有一个人拿了19,其他人都拿20,结果最后一个人会出现三种选择,拿19或者20都是全灭,拿超过20或者低于19的,他还是会死,但有人活下来。由于2号精神要求尽可能多的杀人,所以结果依然是全灭。)
囚徒困境的特点就是消息隔绝和猜忌
对于第一个人来说,只有两种选择,要么拿20,要么不拿20。只要他没有拿20,就意味着他大于或者小于平均数,同样意味着必定会有另外一个人小于或者大于平均数,后面三个人有了选择的权力,他们只需要坚持拿平均数,那个不等于平均数的名额就会往后传,一直到最后一个人没有选择的权力,中间三个人就活下来了。总之,只要第一个人没有拿20,那么他就死定了,而且是把脑袋放在别人脚底的那种死,死得毫无意义。
第一个人只能拿20,虽然推演下去还是个死,但是由于相互不能通信,他会心怀一丝侥幸,万一后面有个SB呢。而且,就算是死,也可以多杀人,符合第二条精神。
还有人说可能遇到第一个人拿20,后面的人拿诸如1、2、3、4这样的数。但是题目说的都是聪明人,如果后面的人乱拿,根本毫无意义,比如第二个人如果拿2个,第三人一看还剩78个,就知道前面有SB,22个豆子两个人拿,会有11种组合,这时候他的最优选择就是拿(100 - 78)/ 2 = 11个(这个解只有当前面两人都拿11个的时候才会死,几率为1/11),后面几个人也会拿这个数,否则就是找死,第二个人除了自己找死和故意坑死第一人外没有任何意义,聪明人不会干这种没有意义的事情。
根据题干,第一个人活不了,于是直接求多杀人,起手96报复社会。96 1 1 1 1是唯一解,也是全灭解。
太长不看版,按照题设,如果所有人都在无可避免死亡的情况下选择杀死更多的人,那么所有人生存几率都是0。
五个人先后顺序分别为abcde,依题设,五人都有绝对严谨的逻辑。
首先a,
首先确认a不能拿1,任何人拿1都必死无疑。这一点是所有人的共识。
所以a的最小选择可以是2吗?不行,因为不会有人拿1,所以2就成为了实际上的最小数,所以a必死无疑。这一点是所有人的共识。
a同样不能拿3,因为绝不会有人拿1和2,所以3成为了实际上的最小数,那么3同样不能拿。
这条逻辑链的存在根本是,a不能让自己陷入最小的处境中,所以a绝不能拿20以下的数。
简单推理一下上面的逻辑。
在20以内,无论a拿多少,b的唯一选择都是a+1,只有这样,b自己才能避免死于最小,且自己不会是唯一最大值。因为c在看到结果的时候,如果ab和为奇数,c选(a+b)/2取整+1,则c一定不是最小值,且不是唯一最大值。如果ab之和为偶数,则c必须选取(a+b)/2,同样c一定不是最小值,且不是唯一最大值。所以说b的唯一选择就是a+1,因为哪怕b=a+2,b都一定比c大,这是b不能接受的结果,这有可能导致自己最大而死。
因为b恒等于a+1,所以c的选择就一定跟b相同了。所以c恒等于b,恒等于a+1。
那么d也是知道这个逻辑的,d也一样没得选,他也只能选a+1,因为哪怕他a+2,他都必然因为自己是唯一最大值而死。
那么e其实也就只剩一个选择,在自己一定活不了的情况下,他只能选a或者a+1,大家同归于尽。
所以这就会造成一个结果,只要a选取小于等于19的数,那么结果就一定是所有人死光光。
那么a的选择只能从20开始了。因为从20开始,才能跳出a一定最小的逻辑。这个逻辑所有人都知道。
假设a20,那么b首先不可以选20以内的数,一旦ab之和小于40,c又开始奇数选(a+b)/2取整+1或者偶数选(a+b)/2了,这就等于b放弃了后选优势,等于自己先选择了一个小于20的数,然后所有人死光。
那么b同样不可以选择20,因为c知道a最小为20,且b不会小于a,那么c就知道a=b=20,c也只能选择20,不然无论他大于还是小于20,他都必死无疑。同理,d也只能选20,最后所有人死光。
所以a选择20,唯一的结果就是所有人死光。
那么a21呢?b的唯一选择就是a-1=20。原因跟上面小于20情况类似。则a21,b20,c20,d20,e19,五个人只死了两个,a可以预见到这个结果,所以a绝不会选择21。
A选择大于21的数同理,都不会出现五人一起死的结果,但是a一定是必死无疑,所以a也不会选择大于21的数字。
所以,很遗憾,这个事只有一个结果,所有人死光光。a会在1-20之内任意选择。
没关系的,都一样。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有