首页 > 试题广场 >

给你两个球,100层楼,每个球在一定高度扔下去会碎,怎么用最

[问答题]

给你两个球,100层楼,每个球在一定高度扔下去会碎,怎么用最少的次数给判断是几层楼能把求摔碎?

 (答案转自网络)假设一开始从第k层投,如果坏了,那么第二个球可以在剩下的k-1层一定能用k-1次确定哪层坏,再加上第k层的那次,所以总共k次。如果第k层没有坏,那么第一个球在第k层的基础上再加k-1层(注意不是k层,原因见后面),所以第二次从2k-1层投下,在k,k+1,k+2,……,2k-2,2k-1中则有k-2层,所以用k-2次才能找出,再加上原来的那两次,还是共用了k次(为了保持总共还是k次,所以上面只能加k-1层)
依次类推.....
在第2k-1层基础上再加k-2层,在第3k-3层基础上再加k-3层,……,依次类推,一定能加到在第某层的基础上再加2层,最后再原来的基础上面还能再加1层,到目前为止,设为第n-1层,如果第n-1层坏了,那么就是第n-1层,如果没有坏,根据已知题说某一层能摔碎球,那么在第n-1层上面有且仅还有一层就是刚摔坏的层(此时不需要实际投,而是直接推理得出),这时用的次数还是k次(最不理想的结果),所以k次能测最多n层,由上面的解说,可知n-1=k+(k-1)+(k-2)+(k-3)+……+2+1=k(k+1)/2,得n=k(k+1)/2+1,由上面可知n=100(层),k次最多能推测k(k+1)/2+1(层),所以k(k+1)/2+1≥100,得k(k+1)≥198,且k的最小整数为14,所以最多14次就能找出题目中的那层。
补充:由上得知,第一次在14层投,第二次在第27层投,则依次为14 27 39 50 60 69 77 84 90 95 99。还能得出14次最多能测得到106楼,只不过题目中给了100楼,如果是107楼,那么就需要15次了。
编辑于 2019-04-22 15:33:20 回复(5)
首先:对半,第一次球碎了,那就需要50次才能知道最坏情况。
怎样在最坏的情况下最小?
设需要X次那么 第一次在X层,因为X碎了则0~X最坏有X-1次。
那么下一次就是X+(X-1)处,因为这里碎了,最坏也是X次。    
同理....有(X+1)*(X)/2  等差数列求和  结果是14 向上取正
发表于 2019-11-23 21:24:28 回复(0)
第一个球分别从第1,2,4,8,16,32,64,100层扔,如果第一个球在第8层摔碎了,就用第二个球从第5层,一层一层试。 关于大家说的二分查找,我是这么想的,假设球在24层扔就会碎,那用二分查找,第一次在50层扔,碎了,说明应该在左侧继续查找,然后第二个球在50层扔,又碎了。完了,没得玩了🌝🌝
发表于 2021-03-25 23:57:43 回复(0)
y=100/x + x 是个先减后增函数,在x=10处取最小值。 所以是从小到大每10层丢一次,确认是哪10层后,再每层挨个丢一次,最大20次试出来
发表于 2021-03-23 13:05:09 回复(0)
对半摔

发表于 2019-08-17 10:59:57 回复(1)
我觉得用二进制思维解就可以了,第一次测试64层,往最大测试次数那一端思考(如果层数在64-100之间测试次数会更小),第二次测试32层,第三次测试16层,第四次测试第8层,第五次测试第4层,第6次测试第2层,第七次测试第1或3层,最多七次。
发表于 2020-08-14 22:21:39 回复(2)
为什么我觉得是6次,因为题目要求是最少,即最理想情况,通过二分法,往右表示没摔坏,往左表示摔坏了,一直往右的话,最后要么是99层楼会摔坏要么是100层楼摔坏,一共是6次。
发表于 2020-08-13 19:58:13 回复(2)
<p>二分查找法</p>
发表于 2020-05-18 23:18:23 回复(0)
动态规划是不也可以来一下子?
发表于 2019-10-24 09:03:47 回复(0)