首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

大楼扔鸡蛋有关问题的求解讨论

2012-08-29 
大楼扔鸡蛋问题的求解讨论有道经典的算法题,100层楼,两个鸡蛋。某层之上扔鸡蛋就会碎。问至少要测试多少次才

大楼扔鸡蛋问题的求解讨论

有道经典的算法题,100层楼,两个鸡蛋。某层之上扔鸡蛋就会碎。问至少要测试多少次才能找出这层楼来。

?

如果只有一个鸡蛋,我就只能一层一层试验。两个的话关键就是找着第一个鸡蛋试验的位置,第二个鸡蛋还是只能一层一层试验。

这道问题其实可以扩展到任意个鸡蛋,但现在还是只看2个鸡蛋的情况。

2个鸡蛋只有n层的最优解求出来假使为k,那么,n+1层的时候,把第一个鸡蛋在第k层释放,只有两种情况(n+1只是分解成两个<=n的子问题,这两个都是已经有解了的):

(1)破碎,于是只有之后就只能遍历从地面到第k-1层,一层层遍历,不能偷懒,最坏的情况在此要尝试k次;

(2)没碎,那问题不就变成了要在n-k层里面求解的子问题了吗?

假设最优解y=f(2,n),所以得到:

?

      6 楼    lightgjc1    2012-02-05              重在思想。。。 

热点排行