【算法】双蛋问题

双蛋问题

题目信息

来源于微软、谷歌面试题。
有一个大楼,有100层高。有一个鸡蛋,在低楼层往下扔,到地下都不会碎,在高楼层往下扔,鸡蛋会碎。碎了之后就无法再往下扔了。
在这里插入图片描述

你有N个鸡蛋可以做实验,最少扔多少次,能够找到临界楼层,楼层以上鸡蛋破碎,楼层以下鸡蛋不会碎。

分类讨论

  • 只有1个蛋,N=1,最少扔M次,能够确定出临界楼层?
    • 不可能一上来就从50层开始,因为一旦碎了,就只知道临界楼层位于1-50之间。
    • 先从第一层扔,如果没碎,就从第二层扔,否则临界楼层就是第一层。
    • 最差的情况下,要扔100次,即M=100。
  • 有无限多个蛋,N=∞此时要使用二分法。二分法是牛顿提出来的,最早是用来求解方程的根。
    在这里插入图片描述
    直到间隔小于1,就不用继续尝试了。

猜你喜欢

转载自blog.csdn.net/sharloopSeason/article/details/142932045