华为的一道面试题 求高手解答

林初茵 2005-08-18 06:42:31
5个高智商囚犯,分别按1-5号在装有100颗绿豆的麻袋面前站好,让他们按次序抓绿豆,规定每人至少要抓一颗,而抓得最多和最少的人将被处死,而且,他们之间不能交流,但在抓的时候,可以摸出剩下的豆子数量。问他们中谁的存活几率最大?
      提示:
      1,他们都是很聪明的人 !
      2,他们的原则是先求保命,再去多杀人 .
      3,100颗不必都分完 .
      4,若有重复的情况,则也算做是最大或最小的情况,一并处死
...全文
1297 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaocai0001 2005-08-27
  • 打赏
  • 举报
回复
看看吧
早有人讨论过了
http://community.csdn.net/Expert/topic/4167/4167667.xml?temp=.0713312
zyang 2005-08-27
  • 打赏
  • 举报
回复
哦,没注意,抓得最多也要死
zyang 2005-08-27
  • 打赏
  • 举报
回复
说点搞笑的:至少抓一颗,可没说最多抓几颗。 100颗绿豆能有多少,第一个人全抓了得了,其他人 全枪毙。嘿嘿

caio0 2005-08-26
  • 打赏
  • 举报
回复
如果4个人分80颗怎么样呢?
如果三个人分60颗呢?(这个不用说了)
caio0 2005-08-26
  • 打赏
  • 举报
回复
我觉得他们没一个能活
首先,第一个人抓的时候,或考虑到后面的人是怎么想的
也会考虑到后面的人想他是怎么想的,一直往下想下去,。。。。。
因为他们是一样的聪明,也都知道别人和他一样聪明
这样就会导致所有人抓的都一样。(如果有一个让自己存活下来的值)

这样他们存活的概率相同0。
这叫同生死,共命运。
whzhhit 2005-08-25
  • 打赏
  • 举报
回复
怎么没有人做了呢??
magic_laubj2008 2005-08-21
  • 打赏
  • 举报
回复
好耐啦
左书也 2005-08-21
  • 打赏
  • 举报
回复
我准备这几天都来这里了,虽然我不会
defyer007 2005-08-20
  • 打赏
  • 举报
回复
看了楼上的各位解答,好象基本上都是考虑的一些特殊情况下的解,但是从概率与统计理论的角度来说,应该考虑所有的情况,然后统计结果,再看谁的生存概率最大,偶有两个想法:
1.用条件概率算,每颗豆子被取或不被取,概率分别为1/2,将每个人的取豆行为看成一个100重伯努力实验,再用条件概率的公式计算。
2.虽然有点笨,但偶觉得可以写个循环,先设n1,n2,n3,n4,n5,n1从1到96循环,n2从1到100-n1循环,n3从1到100-n1-n2循环,依次类推(上面是5个外层循环)然后在内层中判断去掉最大和最小的数(可以重复)将剩下的n(i)所对应的一个统计数组(假设为SurvivRate[i],i=1,2,3,4,5)+1,表示增加它的存活概率;最后,SurvivRate数组中最大的那个数对应的下标号就是解了。
愚见:)
luojxun 2005-08-20
  • 打赏
  • 举报
回复
这种问题是无法用程序模拟的,据我所知还没谁可以写出模拟人的思维软件,也没那台电脑有这么高的智能.不用考虑太多的可能性.因为从第三人开始他拿前面人手里的豆数的平均数(取整数部分),则他手里的豆数大于一个人,小与另一人可能性最高.他必会如此选择.
ilelf 2005-08-19
  • 打赏
  • 举报
回复
我个人感觉好象全部都没有活命的机会似的。
由于每个人都要选不大不小的数,所以他肯定要先算一下前面的人选的数的平均数。
假如ai为每个人选的颗数.
第三个人选的时候肯定先算是一下(a1+a2)/2,假如这个时候选出来的是整数的话,如第一个人和第二个人选的数之差大于等于2,那么第三个人肯定挑a3=(a1+a2)/2颗,[例如a1=6,a2=8,a3=7]后面的人全都挑一样的7,于是只有1,2死。
但由于大家都是联明人,2肯定不会这样做,因为那样他必死。
所以我觉得可能的情况是1选了数a1,二则选|a2-a1|=1的数,第三个人算(a1+a2)/2的时候得到一个中间数,于是他只能从a1,a2里随机挑一个,后面的类似,于是最后所有人挑的数不是a1,就是a2,所以全部都死。
tianhxk 2005-08-19
  • 打赏
  • 举报
回复
假设第一个人抓n粒(当然这个家伙不是白痴(n<20)),第二个人抓的数目不可能让第三个人有选择中间值的可能(如果选择第三个人能选择中间值的话,第四个人和第五个人同样可以选择中间值,必死无疑),那么第二个人可能抓n-1,n+1粒。第三个人会做一个选择(他同样会取前面两个人的中间值)得到k=(2n-1)/2或者(2n+1)/2,但是对他来说,他得作出一个选择,是取k,还是k+1,不管怎么样,总得跟前面两个人中的一个人相同;同理,第四个人和第五个人也必须取中间值,结果他们没有一个人能活下来.
我觉得他们活下来得概率是一样的.
lanyus 2005-08-19
  • 打赏
  • 举报
回复
这五个人谁也没办法确定他拿的数量不是最大或者最小,因为这100个绿豆没有一个绝对的分法让自己知道是否不属于最大或者最小。
这五个聪明人最后拿的数量至少有四个应该是连续的数字,那么,当第一个人拿了之后,他的数字成为最大或者最小的概率是1/2*1/2*1/2*1/2,第二个人成为最大或者最小的概率是1/2*1/2*1/2,第三个人的概率是1/2*1/2。。。。。
所以最后成为最大或者最小的概率是第一个人最小,也就是说他的生存概率最大。
yifeng4592 2005-08-19
  • 打赏
  • 举报
回复
这是一道for 的两层循环题吧
smile2005 2005-08-19
  • 打赏
  • 举报
回复
是概率问题吗?嘿嘿......
xsp919 2005-08-19
  • 打赏
  • 举报
回复
原本是第二个人或第三个人存活概率最大,但是大家都是最聪明的人,而且第五个是必死无疑,所以第五个肯定要拉一个垫背的,会抓一个中间数和其中的某一个一样。结果第一个最不容易死。
whzhhit 2005-08-19
  • 打赏
  • 举报
回复
1号如果取19或者20,他将会是最大者
whzhhit 2005-08-19
  • 打赏
  • 举报
回复
我也觉得1,2,3,4,5都必死无疑,分析如下:
因为他们每个人都不会取大于20 的数,第一个当然也不会取19,也不会取1,2 ,否则他将是最小者。现1号在3到18之间随即取一个数,比如 12 吧,而2号只能选13或者11。因为他知道选相同者必死,所以不会选12,而且他也不愿意给别人取1,2号中间数的机会,因而也不会选其它的数,而选13和11的概率相同,现假定他选11吧,而3号会选10,11,12,13 。因为他知道:5号没有选择的机会而必死,根据“他们的原则是先求保命,再去多杀人”这一原则,5号一定会选择一个垫背的,而4号跟5号一样也没有选择的机会,他自己不能活命,当然也不会给别人活命的机会,所以它同样会选择一个垫背的。如果3号选择11或者12 ,他必死,而4号和5号会选择11或者12而且一定有一个会选择3号未选的那个数。如果3号选择10或者13,那4号和5号一定有一个人会选择前三个人的中间数12,而另一个人会在三个数中任选一个。

canoe_eyes 2005-08-19
  • 打赏
  • 举报
回复
第一个
luojxun 2005-08-19
  • 打赏
  • 举报
回复
其实我的结果5人都没生存的机会.首先题目还得说明不能全拿,因为第一个的生存机会最小,若第一位全拿那5个都死,第一位没得选择,但他必考虑到最有利第四人的情况,他肯定不会拿大于20的豆,第二位知道第一为拿的豆数为了自己生存希望大些会拿比第一个人少一颗的豆,第三个出于以上考虑肯定拿与第二个人一样数的豆,第四照以上考虑拿的与第2,3人一样的数,第四个人也肯定那与第2,3,4人一样数的豆.那5人都死.
加载更多回复(15)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧