20240620每日一题-测试瓶子的硬度

PDF文档公众号回复关键字:20240620

小明用2个玻璃瓶,在总高88层大楼测试瓶子硬度,拿1个瓶子从某层摔下去,瓶子没摔碎,到更高层去摔,如果碎了,拿另1瓶子到更低层摔
问测试出瓶子最大硬度最少摔几次?

分析

1只有1个瓶子

为了保证一定测出瓶子的硬度,只能一层一层测试,最多可能88次

2有足够的瓶子

则可以使用二分去测试,88层,最多7次

3 瓶子只有2个

如果用1个瓶子二分去测试,在44层摔,摔碎了,恰好瓶子硬度是43的话,这时只有1个鸡蛋了,只能再摔43次了

可以尝试,43层不是最优

4 此题解题关键

尽量让第1个瓶子多测试几次

如果第1个瓶子碎了,尽量区间范围小(因为只剩第2个瓶子,必须从下到上逐一测试),如下图最少测试13次就可以测试出瓶子的硬度

上述测试方法,保证每个区间加上前面扔的次数都是13次,最大可以测到90层

如果硬度在1~90范围内,则可以13次测试出瓶子的硬度

请根据上图画出摔12次,最大可以测出多少层的硬度?

posted @ 2024-06-20 21:44  new-code  阅读(0)  评论(0编辑  收藏  举报