当前位置:编程学习 > C#/ASP.NET >>

一道真正难倒亿人的智力题,这是微软的面试题(转)

 5个囚犯,分别按1-5号在装有100颗绿豆的麻袋抓绿豆,规定每人至少抓一颗,而抓得最多和最少的人将被处死,而且,他们之间不能交流,但在抓的时候,可以摸出剩下的豆子数。问他们中谁的存活机率最大??
提示:
1,他们都是很聪明的人
2,他们的原则是先求保命,再去多杀人
3,100颗不必都分完
4,若有重复的情况,则也算最大或最小,一并处死
大家是怎么看的,我看了他的答案感觉解释太牵强了。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 我操出BUG了300分没了 --------------------编程问答-------------------- 分别按1-5号在装有100颗绿豆的麻袋抓绿豆
=====
每人最多抓几颗?第一个人抓100,后面的不能不能抓了? --------------------编程问答--------------------
引用 5 楼  的回复:
分别按1-5号在装有100颗绿豆的麻袋抓绿豆
=====
每人最多抓几颗?第一个人抓100,后面的不能不能抓了?

不能抓了啊,不过第一个人抓100个他就是抓的最多的他也会死的。 --------------------编程问答--------------------   --------------------编程问答-------------------- 靠运气吧,如果天要灭你套都逃不掉的!!! --------------------编程问答-------------------- 这个事有规律可言吗!!!!!!!!
------------------------------------------
100颗不必都分完
1-5号 标明有啥用,又不按顺序抓


我看不用头痛了,5个都直接枪毙算了,下面的说好不好。 --------------------编程问答-------------------- 类似海盗分金币? --------------------编程问答-------------------- 这题的意义在哪里? --------------------编程问答--------------------
引用 10 楼  的回复:
类似海盗分金币?

不海盗分金币是拿最多的,但是他是不能拿最多也不能拿最少。所以绝对跟海盗分金币不同 --------------------编程问答--------------------
引用 11 楼  的回复:
这题的意义在哪里?

锻炼你的逻辑思维能力呗,看看你想问题是否思路清晰意识明确,会不会有漏洞 --------------------编程问答-------------------- 最后抓的那个 --------------------编程问答-------------------- 第3个人吧,能保证不死(不是一个人死,要死必须拉几个垫背的)。
策略很简单,选前面2个人的平均数。如果剩下的球不够平均数则全拿,自己肯定不是最大的,也不是最小的(剩下那2个只能是0了,话说你这题目不严谨,谁来保证每个人都能拿到一个球) --------------------编程问答--------------------
引用 15 楼  的回复:
第3个人吧,能保证不死(不是一个人死,要死必须拉几个垫背的)。
策略很简单,选前面2个人的平均数。如果剩下的球不够平均数则全拿,自己肯定不是最大的,也不是最小的(剩下那2个只能是0了,话说你这题目不严谨,谁来保证每个人都能拿到一个球)

如果第一个人拿了20个,第二个人拿19个他们的平均数是多少?不可能拿半个球吧?
那么他们的平均数就是19.5才对,他拿19个就必须死,而且还会拉着2号他不可能那么傻吧?
他还有4,5号的希望,他不可能就这么放弃希望跟1号或者2号同归于尽吧?
假入第二个人拿了18个,那么平均数就是19,他肯定不会死,但是2号会给3号机会么?
所以2号的策略肯定是19或者21,他不会给3号插队的机会,接着想。
3号也不傻他肯定也不会给4号或者5号插队的机会吧?3号只要拿18个
他是不是就有50%的机会活下去了呢?
加入4号或者5号有一个拿的比他少他就活下去了,他肯定会赌的。。。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 10 楼  的回复:
类似海盗分金币?

我第一个反应也是这个... --------------------编程问答-------------------- 没有用的,如果5个人都足够聪明的话,那么他们5个都得死 --------------------编程问答-------------------- 五个人平均分配20个毛豆,就着啤酒吃喝完了
大家就全幸运的活了下来 --------------------编程问答-------------------- 1号要想有活命的可能,就选5个(其实是5-18),把选择权交给下一位,这样的话,4、3、2、1 和 6、7、8、9---队列成长的方向由2号和3号来决定(鬼知道队列实际上往哪边长了)。决定生死的是5号,或死2个(他5号本人和队列另外一头的),或死4个(和队列中的任何一位重复一下)

这个不象是数学题。。。咱做的也凭想当然了。。。

--------------------编程问答-------------------- 答案就是出这道题的人脑袋被门夹了,
题目变数太多!条件也很模糊!
他们都是聪明的人?有多聪明?聪明的人怎么会被抓?
就这一条就可以推断5个都是傻子。面试官在忽悠我们。

最后答案就是5个人存活几率都一样。都太蠢,蠢死的。


--------------------编程问答-------------------- 提示中
1,他们都是很聪明的人
2,他们的原则是先求保命,再去多杀人

大家觉得聪明的人的原则会是先求保命,再去多杀人吗?
--------------------编程问答-------------------- 微软,就考这些啊 --------------------编程问答--------------------
引用 24 楼  的回复:
微软,就考这些啊

不知道啊我是复制的,这可能是最简单的吧。。。 --------------------编程问答-------------------- 这道题倒象个民主题:如果1号选择了5-18内的任意一个数,那么,大家想要谁死,那么那个谁肯定就死定了(队列方向的灵活性肯定能将那个人弄到2头中的一头,另一头是5号),并且5号还决定这个团队最终存活的数量---这又象个团队精神的训练课程 --------------------编程问答-------------------- 存活概率:5号0,其余1/4,除非有人甘愿做出牺牲 --------------------编程问答-------------------- 我觉得是五个人都聪明就得一起死。如果第一个拿5个(这个数可以在2-20之间随便选),第二个人就拿6个,那么第三个为了保命一定会在5和6中选一个,结果三个人总数就是16或17,第四个一定也拿三个人的近平均数即5或6,四个人总数就是21、22或23,最后一个人也不傻,他绝对拿近平均数也是5或6,于是他们五个人拿到的都是5或6,一起被处死。 --------------------编程问答--------------------
引用 28 楼  的回复:
我觉得是五个人都聪明就得一起死。如果第一个拿5个(这个数可以在2-20之间随便选),第二个人就拿6个,那么第三个为了保命一定会在5和6中选一个,结果三个人总数就是16或17,第四个一定也拿三个人的近平均数即5或6,四个人总数就是21、22或23,最后一个人也不傻,他绝对拿近平均数也是5或6,于是他们五个人拿到的都是5或6,一起被处死。
拿平均数法肯定死,要是作为协作团队的话,后面的人肯定不能那么做,这样才能有活下来的希望和可能,所以,要有留谁不留谁的公共意识,假如是闭着眼睛抓的话,就听天由命吧,但不能把活着的希望给掐掉吧? --------------------编程问答--------------------
引用 29 楼  的回复:
引用 28 楼 的回复:
我觉得是五个人都聪明就得一起死。如果第一个拿5个(这个数可以在2-20之间随便选),第二个人就拿6个,那么第三个为了保命一定会在5和6中选一个,结果三个人总数就是16或17,第四个一定也拿三个人的近平均数即5或6,四个人总数就是21、22或23,最后一个人也不傻,他绝对拿近平均数也是5或6,于是他们五个人拿到的都是5或6,一起被处死。
拿平均数法肯定死,要是作为协作团……

除非自己愿意牺牲  你拿一个不是平均数的  别人不能平均数 死的就是你和另外一个 --------------------编程问答-------------------- 拿一样多全枪毙不? --------------------编程问答-------------------- 昏暗潮湿的地下室内,一个消防管因长期受到水气的腐蚀,表面生成了又滑又粘的白色污垢。消防管上,拴着5条铁链,连着5个囚犯的双脚。在消防管对面的窗户后,狙击手在后面无情的瞄准他们,他们知道,他们是谁也别想逃出了。

这5个囚犯,现在面临着抓豆的这道难题,他们曾经都是CSDN各论坛最聪明的人。他们身上被编上了号码,1号囚犯身材特别瘦小,一看就是长期加班与吃泡面的结果。2号却很胖,但是那薰黑的两根手根跟范黄的牙齿暴露出了他是个苦逼的C#。3号靠着消防管坐在角落里面,一言不发,不知道是在计算他要怎么抓豆还是在继续想着java那些事。4号靠在那个放着100粒豆子的桌子上,手心不停在冒汗,脚在轻微的颤抖,一看就知道是因为日日编程,只能夜夜撸管的结果。5号隐藏在另外四个人的影子里面,看不清他的面目,难不成是传说中的蒋tao.

抓豆开始了,1号在袋子里摸索了半天,是真正的半天,终于把手很轻很轻的拿了出来,生怕惊动一根头发,谁也不知道他抓了多少颗,只知道他很聪明,他抓的肯定对他最有利。

然后2号了,2号看到1号出来的时候,手也很轻很轻的放进去,然后,然后他愣住了,他发现黄豆被分成了很多组,他一组组的数下去,然后默默的把手拿了出来。

3,4,5都重复着2号的动作。结果出来了,呯呯两声响,1号4号倒了下去。

隔日,腾讯头条报道,《CSDN三程序员讲述全球微件巨头微软面试不为人知的黑幕》。文中主要是说微软如何把他们用惨无人道的面试题做生死决择,他们进去5人,没有任何工具的情况下,怎么通过在豆袋里面用豆子组合成文字交流信息,牺牲两个最弱的人,承诺照顾他们的家人,换两颗子弹,然后把颗子弹的弹头磨尖开锁,趁半夜微软面试官打盹逃出生天的故事。

--------------------编程问答-------------------- 如果4号把豆豆都拿完了,5号死不死?还是重新拿 --------------------编程问答--------------------
引用 33 楼  的回复:
如果4号把豆豆都拿完了,5号死不死?还是重新拿

死定了这个题是求几率的,不是求谁死谁活的,每个人都有可能死,这个是必然,但是活下去几率最大的人还是有的,难道不是么? --------------------编程问答-------------------- 如果4号把豆豆都拿完了,5号死不死?还是重新拿 --------------------编程问答--------------------
引用 32 楼  的回复:
昏暗潮湿的地下室内,一个消防管因长期受到水气的腐蚀,表面生成了又滑又粘的白色污垢。消防管上,拴着5条铁链,连着5个囚犯的双脚。在消防管对面的窗户后,狙击手在后面无情的瞄准他们,他们知道,他们是谁也别想逃出了。

这5个囚犯,现在面临着抓豆的这道难题,他们曾经都是CSDN各论坛最聪明的人。他们身上被编上了号码,1号囚犯身材特别瘦小,一看就是长期加班与吃泡面的结果。2号却很胖,但是那薰黑的两根手根……

我很喜欢你的作品,支持你。。 --------------------编程问答--------------------
引用 31 楼  的回复:
拿一样多全枪毙不?

4,若有重复的情况,则也算最大或最小,一并处死
--------------------编程问答-------------------- 2号生存的几率应该最大的.应为他掌握的信息相对来说最多。他知道前面那个人拿了多少。4号的生存几率第二,因为他可以决定最后那个人的生死,而且可以排除自己或最多或最少的一种死法。

1,他们都是很聪明的人
2,他们的原则是先求保命,再去多杀人
这两条几乎决定了他们都得死。

因为拿20个豆是对自己生存最大的保障。 --------------------编程问答--------------------
!~为什么有的地方的题目中没有重复的要死呢。。。 --------------------编程问答-------------------- http://zhidao.baidu.com/question/146575347.html --------------------编程问答--------------------
引用 40 楼  的回复:
http://zhidao.baidu.com/question/146575347.html

你看错了有重复和没重复的都要死,他的答案很多地方都不合理 --------------------编程问答--------------------
引用 41 楼  的回复:
引用 40 楼  的回复:
http://zhidao.baidu.com/question/146575347.html

你看错了有重复和没重复的都要死,他的答案很多地方都不合理

噢!~。。不过我感觉蛮合理的啊。。 --------------------编程问答-------------------- 一直都很困惑这个问题,网上也搜索不到标达,我只说一下我的看法.

首先根据题意,初步推导出拿豆序列,如果1号拿N颗,2号N-1, 3号N-2, 4号N-3, 五号不确定. 对于任意一个号码,能获取的信息就是前面的人一共拿了多少颗.

第二拿豆的5号的策略,对于5号来说,平均数+2/平均数 - 2 都意味着他是边值,所以还不如拿个平均值,反正都是死,也许赌到中间还有空位.

1号具有先发优势,有绝对的优势决定多少人陪他死,当然以自己的生命为代价.可惜这不是欺诈游戏,否则1号肯定能依靠自己的优先分配权敲诈2,3,4,5. 赞到足够自己活命的金币数.

当然1,2,3,4 号都不愿意5号实施策略,这对众人来说风险太高,几乎导致团灭.

解不等式:
 
N + N-1 + N-2 + N-3 + N-4 < = 100    N < = 22
N + N-1 + N-2 + N-3 <= 100          N < = 27
N + N-1 + N-2 < = 100                N < = 35
N + N-1 < = 100                      N < = 51
                                     N < = 100                      

第一种1号策略,拿22颗以上,导致1号和5号无条件落败,2,3,4,存活,同时有效遏制5号策略导致团灭.但是这种策略是以牺牲一号自身为代价的,他凭什么这么作.
第二种1号策略,拿27颗以上,导致1,4, 5号无条件落败,2,3存活.
...
第五种 拿100颗 大家一起挂掉.


概率我不会算,
结论就是1号的策略决定了生还的人数.这么看2号生还率最高.

--------------------编程问答-------------------- 貌似这个问题接替思路明确了.
既然1号已经明确了不管选多少颗自己都会死,而且勒索其他的人也不会得到任何的好处,那么他肯定在1-100之间等概率的选.而1号的选择决定了其它囚犯的生还概率.

1号拿的永远是最大值N,
其他囚犯的最佳侧略是N-1, 
5号的最佳策略是平均值.
                            1    2   3   4   5
1. 22 < = N < 27            0    1   1   1   0
2. 27 < = N < 35            0    1   1   0   0
3. 35 < = N < 51            0    1   0   0   0  
4. 51 < = N < 100           0    1   0   0   0 
5. N = 98, 99, 100          0    0   0   0   0 
6. N < 22          0    0   0   0   0  
N < 22时4号知道自己按照原有策略必死,2,3号有50%的概率存活,势必采用5号侧略导致团灭


当N<22时,递增策略有利于团队存活,以遏制5号的疯狂策略,
N + N+1 + N +2 + N+3 + N-1 <= 100  N <= 19
N + N+1 + N +2 + N+3 <= 100  N <= 24
分析发现2号以后采用递增策略并不可行,因为4号不会愿意成为最大值代替1号死,依次类推,递减策略依然是2,3,4,号的主要策略.

特别的 N < 5时, 2,3,4, 都可能采用5号策略.导致团灭.
4,3,2,1   3/2
3,2,1     2,2
2,1       2/1, 2/1, 2/1
1         2,3,4, 2/3   
分析可能有漏洞,4号如果发现自己必死可能采用5号策略,让大家一起挂,而不会给2,3号50%的存活概率.



综上:1号初始抓取值决定了2,3,4,5存活率.
1号存活范围 0            
2号存活范围 22-97        
3号存活范围 22-34        
4号存活范围 22-26        
5号存活范围 0            

不知道这个概率怎么算.








--------------------编程问答-------------------- 这种题目有意思?怎么没一点感觉?
最少=1最多=100
每人拿2,逃出最少和最多,每人又都一样多,怎么算最多和最少?!
虽不能交流,却可以数数得知前一人拿多少,如果有第一人拿2那么第二人可以数出来,第二人他会怎么选择?拿1确定不可能,如果拿3他又如何确定第三人拿多少?那么他可以选择也拿2同生共死几率如是推下......
-----------------
公历→农历
2013年06月12日
双子座
二〇一三年五月初五
癸巳〖蛇〗,戊午月,己酉日,癸酉时
今属:土;五行:水火土金;缺:木。
纳音五行:长流水。 --------------------编程问答-------------------- 概率分别是 66%,35%,31%,44%,66% --------------------编程问答-------------------- 第五个人的被枪毙的概率是 67%,不是66%。 --------------------编程问答-------------------- 每人拿2,怎么算最多和最少?!
----------------------
公历→农历
2013年06月12日
双子座
二〇一三年五月初五
癸巳〖蛇〗,戊午月,己酉日,甲戌时
今属:土;五行:水火土金木;缺:。
纳音五行:长流水。 --------------------编程问答--------------------
引用 5 楼 hztltgg 的回复:
分别按1-5号在装有100颗绿豆的麻袋抓绿豆
=====
每人最多抓几颗?第一个人抓100,后面的不能不能抓了?


第n个人必须给袋子里留5-n颗,不可能多抓。 --------------------编程问答-------------------- --------------------编程问答-------------------- if 100 != a1=a2=a3=a4=a5=2 !=1
if 100 != a1=a2=a3=a4=2 !=a5=3 !=1 then a1-a4嘭!!!!a5嘭!
----------------------------------------------------------
公历→农历
2013年06月12日
双子座
二〇一三年五月初五
癸巳〖蛇〗,戊午月,己酉日,乙亥时
今属:土;五行:水火土金木;缺:。
纳音五行:长流水。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 如果大家都是聪明人,1号肯定全拿完,你觉得聪明的人会把命运交在别人手中吗? --------------------编程问答--------------------
引用 49 楼 sp1234 的回复:
Quote: 引用 5 楼 hztltgg 的回复:

分别按1-5号在装有100颗绿豆的麻袋抓绿豆
=====
每人最多抓几颗?第一个人抓100,后面的不能不能抓了?


第n个人必须给袋子里留5-n颗,不可能多抓。

可以多抓啊,可以拿任意个,不过你抓100个,你用屁股想想,最多和最少都死啊,保命原则。
抓100个你就是最多,必死无疑,所以从某种角度讲P哥说的是对的。 --------------------编程问答-------------------- 生死大权第三个人手里
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,