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次,最大可以测出多少层的硬度?
作者:newcode 更多资源请关注纽扣编程微信公众号
从事机器人比赛、机器人等级考试、少儿scratch编程、信息学奥赛等研究学习