美文网首页
趣味算法

趣味算法

作者: couriravant | 来源:发表于2023-05-04 22:46 被阅读0次

    扔杯子
    有一种玻璃杯质量确定但未知,需要检测。
    有一栋100层的大楼,该种玻璃杯从某一层楼扔下,刚好会碎。
    现给你两个杯子,问怎样检测出这个杯子的质量,即找到在哪一层楼刚好会碎?

    方案三:基于数学方程的方法
    事实上,这算是一道趣味问题,可以从数学的角度进行分析。

    假设最少尝试次数为 x ,那么,第一个杯子必须要从第 x 层扔下,因为:如果碎了,前面还有 x - 1 层楼可以尝试,如果没碎,后面还有 x-1 次机会。

    如果没碎,第一个杯子,第二次就可以从 x +(x - 1)层进行尝试,这里加上 x - 1,是因为当此时,第一个杯子碎了,第二个杯子还有可以从 x + 1 到 ( x + (x - 1) - 1 ) 层进行尝试,有 x - 2 次机会。
    如果还没碎,那第一个杯子,第三次从 x + (x - 1) + (x - 2)层尝试。不管杯子碎或者没碎,都有 x - 3 次尝试机会,依次类推。
    那么经过 x 次的尝试可以确定最高的楼层为 x + (x - 1) + (x - 2) + … + 1 = x(x+1) / 2 。

    那反过来,当最高楼层是100层,最少需要多少次呢?即 x(x+1)/2 >= 100, 得到 x >= 14 ,最少要尝试 14 次。
    refer:
    https://www.zhihu.com/question/27547892/answer/131239272
    https://cloud.tencent.com/developer/beta/article/1497944

    相关文章

      网友评论

          本文标题:趣味算法

          本文链接:https://www.haomeiwen.com/subject/nddfsdtx.html