问题:有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层???
首先思考这个问题,1-100这100个数字,随便给你一个数字,你怎么能用最少的次数猜出来这个数字在哪?
这个问题高中生都知道,二分猜,七次肯定能猜出来,例如最坏的情况之一52
我们依次猜 50 75 62 56 53 51
第七次我们一定可以得到52这个值
这个问题的思路就是,**无论这个数字是几,我最坏的情况7次都能猜出来。**
那么这个问题我们也得这么想:
无论某一层是第几层,我第二个球加上第一个球的次数最坏的情况X次都能确定该楼层
又因为,当第一个球在某一次的某一层碎了,我们第二个球必须一层一层的测试才行
随便举个例子,我们第一个球每十层抛一次,假设在第100层碎了,我们只需要从91层开始一层一层的测试一直到99层就行,
因为第100层的状态我们已经知道了。 这样最坏的情况为10 + 9 = 19次。
不妨顺着例子,尝试保证无论在哪一层碎了,两个球加在一起最坏的情况就是10次,故
第一个球从10层开始,如果碎了,那么第二个球最坏的情况最多**只有**第一层到第九层这九次,最坏的情况一共是1+9 = 0 + 10 = 10次;
第一个球的第二次最坏只能是11 + 8 = 10 + 9 = 19,因为第一个球已经测试了2次,所以第二个球最坏的情况有且**只能有**8次的机会,即11-18这八次,所以第一个球第二次最坏只能在19层破碎,这样才能保证10次
第一个球的第三次20 + 7 = 19+8 = 27(因为已经第一个球测试了3次,所以第二个球**只能有**7次的机会,即20-26这七次,所以第一个球最坏只能在27层破碎,这样才能保证最坏的情况是10次),
第一个球的第四次28+6 = 27+7 = 34(因为已经第一个球测试了4次,所以第二个球**只能有**6次的机会,即28-33这六次,所以第一个球最坏只能在34层破碎,这样才能保证最坏的情况是10次)
第一个球的第五次35 + 5 = 34+6 = 40(因为已经第一个球测试了5次,所以第二个球**只能有**5次的机会,即35-39这五次,所以第一个球此时最坏只能在40层破碎,这样才能保证最坏的情况是10次)
第一个球的第六次41+4 = 40+5 = 45,(因为已经第一个球测试了6次,所以第二个球**只能有**4次的机会,也就是41-44这四次,所以第一个球此时最坏只能在45层破碎,这样才能保证最坏的情况是10次)
第一个球的第七次46+3 = 45+4 = 49,(因为已经第一个球测试了7次,所以第二个球**只能有**3次的机会,即46-48这三次,所以第一个球此时最坏只能在49层破碎,这样才能保证最坏的情况是10次)
第一个球的第八次50+2 = 49+3 = 52,(因为已经第一个球测试了8次,所以第二个球**只能有**2次的机会,即50-51这两次,所以第一个球此时最坏只能在52层破碎,这样才能保证最坏的情况是10次)
第一个球的第九次53 + 1 = 52 + 2 = 54,(因为已经第一个球测试了9次,所以第二个球**只能有**1次的机会,即53这一次,所以第一个球此时最坏只能在53层破碎,这样才能保证最坏的情况是10次)
第十次55+0 = 54 + 1 = 55 (因为第一个球已经测试了10次,第二个球没有次数了,只有0次,所以第一个球此时最坏只能在55层破碎,这样才能保证最坏的情况是10次)
(此时已经无法再继续分下去了,按理说加到最后一次获得的层数应该大于等于99的,为什么不是100?因为如果99层碎了,100层没必要检测,如果99层没碎,那么一定是100层,所以100没有测试的必要)
我们发现最坏是10次开始的话覆盖不了这100层楼。
那问题就很简单了,因为我们知道最坏是x次时一定能覆盖100层楼,解出来x就行, 那么,照搬上面的模式
第一次1 + (x - 1) = 0 + x次,
第二次是 (x + 1) + (x - 2) = x + (x-1)
第三次是 (x + x-1 + 1) + (x + x-1 - 2) = x + (x - 1) + (x - 2)
.....
第x次是 x + (x - 1) + (x - 2) + .... + 2 + 1 >= 99
即 x(x+1) / 2 >= 99 解得x = 14
所以第一个球的层数依次分别是
14 27 39 50 60 69 77 84 90 95 99
可以保证无论在哪一层碎了,都可以保证最坏的情况为14次
一个很有意思的巧合
100 / 7 = 14
14是这题的答案,7是引例的答案,而二者都和2还有100有关,
我总感觉二者有什么关系,但是并没有发现有什么实质性的联系。
利用两个玻璃球找出100层楼的临界层
解决一个数学谜题:如何在100层楼的大楼中,使用两个相同的玻璃球,以最少次数找出导致玻璃球破碎的临界层。通过策略优化,确保最坏情况下最多10次就能确定答案。答案是14层,巧合地与另一个类似问题的答案7层有关。
3万+

被折叠的 条评论
为什么被折叠?



