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

100层楼2个鸡蛋

时间:2015-04-02 01:04:04      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:

有一栋楼共100层,一个鸡蛋从第N层及以上的楼层落下来会摔破, 在第N层以下的楼层落下不会摔破。给你2个鸡蛋,设计方案找出N,并且保证在最坏情况下, 最小化鸡蛋下落的次数。 

 

设最坏情况下的次数为K,如果第一个鸡蛋第一次就在x层摔坏,则第二个鸡蛋应该从第1层开始试到x-1层,最坏还要试x-1次,则总测试次数为1+(x-1)= K,x=k;

如果第一个鸡蛋第一次在x层没坏,第二次摔坏了,此时已经测试了2次了,则第二个鸡蛋最坏能够测试k-2次,设第二次摔坏的层数为y,则第二个鸡蛋应该从x+1层开始测试到y-1层,为k-2次,即(y-1)- (x+1)+1=k-2;因为x=k,所以y=2*x-1 =x+(x-1)层;

如果第一个鸡蛋在第三次摔坏,同上可得第三次应该在x+(x-1)+(x-2)层

最多为x+(x-1)+(x-2)+...+1层,应该大于等于总楼层100层,即

x + (x-1) + (x-2) + ... + 1 >= 100

(x+1)*x/2 >= 100

x=14;

所以最多测试14次,第一次在14层,第二次在27, 依次类推14, 27, 39, 50, 60, 69, 77, 84, 90, 95, 99, 100层;

100层楼2个鸡蛋

标签:

原文地址:http://www.cnblogs.com/moyangvip/p/4385704.html

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