有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层???
投掷次数分布不均。按最坏情况估计,这种方法就多做了几次。为了使最坏情况的投掷数最小,我们希望无论临界段在哪里,总的投掷数都不变,也就是说投掷数均匀分布。
接下来的解决方案就很容易想出了:既然第一步(确定临界段)的投掷数增加不可避免,我们就让第二步(确定临界层)的投掷数随着第一步的次数增加而减少。第一步的投掷数是一次一次增加的,那就让第二步的投掷数一次一次减少。假设第一次投掷的层数是f,转化成数学模型,就是要求f+(f-1)+...+2+1>=99,即f(f+1)/2>=99(第一次测试点选择100层是无意义的,必然会碎,所以无任何测试价值,所以第一次测试点k是1-99中的一个数),解出结果等于14。丢下第一颗鸡蛋的楼层就分别是 14 , 27 , 39 , 50 , 60 , 69 , 77 ,84 , 90 , 95 , 99 。
————————————————
版权声明:本文为CSDN博主「xiaohai0504」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaohai0504/article/details/6941467
100层楼和两个玻璃球思路解析
最新推荐文章于 2021-11-27 16:07:22 发布
本文详细解析了如何使用两个玻璃球,通过最优策略找出100层高楼中玻璃球摔碎的临界层。关键在于保持总投掷次数不变,使得无论临界段在哪,投掷次数均匀分布。通过数学模型f(f+1)/2>=99得出第一次丢球的楼层选择,以达到最小化最坏情况的投掷次数。
摘要由CSDN通过智能技术生成