首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
给你两个球,100层楼,每个球在一定高度扔下去会碎,怎么用最
[问答题]
给你两个球,100层楼,每个球在一定高度扔下去会碎,怎么用最少的次数给判断是几层楼能把求摔碎?
添加笔记
求解答(3)
邀请回答
收藏(65)
分享
纠错
10个回答
添加回答
9
AlbertSean
(答案转自网络)假设一开始从第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)
2
司坤天南
首先:对半,第一次球碎了,那就需要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
仗剑天涯va
第一个球分别从第1,2,4,8,16,32,64,100层扔,如果第一个球在第8层摔碎了,就用第二个球从第5层,一层一层试。 关于大家说的二分查找,我是这么想的,假设球在24层扔就会碎,那用二分查找,第一次在50层扔,碎了,说明应该在左侧继续查找,然后第二个球在50层扔,又碎了。完了,没得玩了🌝🌝
发表于 2021-03-25 23:57:43
回复(0)
1
竹马马竹
y=100/x + x 是个先减后增函数,在x=10处取最小值。 所以是从小到大每10层丢一次,确认是哪10层后,再每层挨个丢一次,最大20次试出来
发表于 2021-03-23 13:05:09
回复(0)
1
忆尘
对半摔
发表于 2019-08-17 10:59:57
回复(1)
0
NetEase猪仔001号
我觉得用二进制思维解就可以了,第一次测试64层,往最大测试次数那一端思考(如果层数在64-100之间测试次数会更小),第二次测试32层,第三次测试16层,第四次测试第8层,第五次测试第4层,第6次测试第2层,第七次测试第1或3层,最多七次。
发表于 2020-08-14 22:21:39
回复(2)
0
从那天开始
为什么我觉得是6次,因为题目要求是最少,即最理想情况,通过二分法,往右表示没摔坏,往左表示摔坏了,一直往右的话,最后要么是99层楼会摔坏要么是100层楼摔坏,一共是6次。
发表于 2020-08-13 19:58:13
回复(2)
0
牛客363442233号
网上有人解答:
https://blog.csdn.net/Helloguoke/article/details/16880251?utm_source=jiancool
编辑于 2020-07-07 11:47:32
回复(0)
0
threeoff
<p>二分查找法</p>
发表于 2020-05-18 23:18:23
回复(0)
0
字节跳不动
动态规划是不也可以来一下子?
发表于 2019-10-24 09:03:47
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
上传者:
小小
难度:
10条回答
65收藏
7871浏览
热门推荐
相关试题
编程题 ,按照要求创建Java 应...
Java
评论
(1)
微型计算机有三种总线,他们分别是数...
编程基础
评论
(1)
计算机系统中用于管理硬件和软件资源...
编程基础
评论
(1)
市场与销售的区别在哪里?
市场营销
评论
(1)
说出3个获取用户需求的方法并简述其...
用户研究
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题