码迷,mamicode.com
首页 > 其他好文 > 详细

你拿着两个鸡蛋站在 100 层的大楼上。鸡蛋或许结实到从楼顶掉下也不会摔破。或许很易碎,在一楼摔下就破碎。

时间:2017-12-06 21:49:45      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:开始   bsp   分析   好的   情况   多少   nbsp   必须   最大的   

你拿着两个鸡蛋站在 100 层的大楼上。鸡蛋或许结实到从楼顶掉下也不会摔破。或许很易碎,在一楼摔下就破碎。
请问最少试验多少次可以确保找出鸡蛋不会被摔碎的最高楼层?

注意:
1、只有两个蛋
2、确保找出

 


一开始,我们先用猜的吧:
我猜测,鸡蛋不会被摔碎的最高楼层是27层,于是从27层摔了一个鸡蛋下去。
结果有两种:
1、鸡蛋碎了。那么,鸡蛋不会被摔碎的最高楼层,在第1层至第27层之间。此时只剩下一个蛋了。为了确保找出,这个蛋,就不能猜了。因为,万一又猜错了,就没有鸡蛋可以试验,也就无法确保找出鸡蛋不会被摔碎的最高楼层了。那要怎么办呢?很简单,从第1层开始试验,如果第1层就碎了,就已经能得出结论了,即第1层就会摔碎。而如果从第1层摔下去没碎,那就第二层,第三层...直到在谋一层摔碎为止,这样就能确保得出,鸡蛋不会被摔碎的最高楼层。因为我们一开始猜测的是27层,而27层时碎了一个鸡蛋。第二个鸡蛋从第1层开始,往上试验,最多试验到第26层,也就是26次,加上猜的那次,最多27次确保找出来。请接着看第二种结果
2、第27层鸡蛋没碎。那么,鸡蛋不会被摔碎的最高楼层,在第27至100层之间,同上,仍然要从低层的开始,往上试验,也就是,第2个鸡蛋,从28层开始,往上到100层,直到某一层摔碎,这样,最多要试验73次
结论:如果采用猜测的方法,猜鸡蛋不会被摔碎的最高楼层是27层,那么,要确保找出来,需要试验73次(为什么试验次数取最大的?因为鸡蛋不会被摔碎的最高楼层你不知道,而要确保找出来,那么,小于73次,都是可能找出,而试验73次,则一定能找出,所以取最大试验次数,也就是能确保找出鸡蛋不会被摔碎的最高楼层的试验次数是73次)请接着往下看

因为上面猜测的是27层,得出需要试验73次才能确保找出。如果猜测的是50层呢?根据上面的分析,就是从1-49,51-100,这样的,最多只要50次,就能确保找出。

好像发现了什么:第一个猜测的楼层不同,最多试验次数也不一样(注意,你只有两个鸡蛋,第二个鸡蛋,绝对不能猜测,因为万一猜错,就没有鸡蛋可以试验,也就不能确保找出了,所以,第二个鸡蛋,必须从最低层开始摔,直到某层摔下,鸡蛋会碎,这样,就能确保找出鸡蛋不会被摔碎的最高楼层)

上面,我们一个猜测的最高楼层是27层时,最多需要试验73次,就能确保找出鸡蛋不会被摔碎的最高楼层
而第一个猜测的最高楼层是50层时,最多需要50次就可以了
那有没有办法,比50次更少呢?


假如我第一次猜的是第10层
如果第10层碎了,就从1-9,试验9次
如果第10层没碎,你还有两个完好的蛋,可以再猜一次
这次猜第20层
如果第20层碎了,就从11-19,试验9次
如果第20层没碎,你仍然还有两个完好的蛋,可以继续猜一次
30 层
40 层
.
.
.
100 层
这种方式,试验的最多次数是下面这种情况:
10层不碎(试验一次)、20层不碎(试验一次)...90层不碎(试验一次),100层碎了(试验一次)
那么试验次数就是 10 个“试验一次” + (91至99,从低层往上试验9次)
最多试验19次。比上面的50次少了很多


还有没有办法,让次数更少呢?

 

你拿着两个鸡蛋站在 100 层的大楼上。鸡蛋或许结实到从楼顶掉下也不会摔破。或许很易碎,在一楼摔下就破碎。

标签:开始   bsp   分析   好的   情况   多少   nbsp   必须   最大的   

原文地址:http://www.cnblogs.com/liaolongjun/p/7994490.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!