比二分法更快的算法_算法问题:扔杯子的几种方法

题目描述有一种玻璃杯质量确定但未知,需要检测。 有一栋100层的大楼,该种玻璃杯从某一层楼扔下,刚好会碎。 现给你两个杯子,问怎样检测出这个杯子的质量,即找到在哪一层楼刚好会碎?题目解析2 个杯子的脆弱程度是一样的如果杯子从 N 楼扔下来没有碎,那么它从小于 N 楼扔下来,也不会碎如果杯子从 N 楼扔下来碎了,那么它从大于 N 楼扔下来,也一定会碎一个扔出去但没有碎的杯子,可以继续被用于试验碎了的...
摘要由CSDN通过智能技术生成

题目描述

有一种玻璃杯质量确定但未知,需要检测。

有一栋100层的大楼,该种玻璃杯从某一层楼扔下,刚好会碎。

现给你两个杯子,问怎样检测出这个杯子的质量,即找到在哪一层楼刚好会碎?

题目解析

  • 2 个杯子的脆弱程度是一样的
  • 如果杯子从 N 楼扔下来没有碎,那么它从小于 N 楼扔下来,也不会碎
  • 如果杯子从 N 楼扔下来碎了,那么它从大于 N 楼扔下来,也一定会碎
  • 一个扔出去但没有碎的杯子,可以继续被用于试验
  • 碎了的杯子将无法再继续试验。

举个:

如果从 x 楼扔下,没碎,在 x+1 楼扔下,碎掉了,即证明找到了 x+1 是刚好碎掉的楼层。

那么问题来了:怎样才能最快速的找到这个楼层?

问题的解决有很多种方案,注意点就是找到的最佳方案是能在各种情况下都能快速地找到目标楼层

总结一下:我们的终极目的是要找出连续的两层楼 x 与 x + 1 ,在楼层 x 杯子没有摔碎,在楼层 x + 1 杯子碎了,问题的关键之处在于,测试之前,并不知道杯子会在哪一层摔碎,需要找到的是一种测试方案,这种测试方案,无论杯子会在哪层被摔碎,都至多只需要 m 次测试,在所有这些测试方案中, m 的值最小。

弄清题意后下面进行分析,事实上,学习过算法或者程序的人

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值