有一幢100楼的大厦,两部手机,让你设计一种算法确切地知道这部手机在第几楼摔下会坏

第一步手机是用来决定在0-100层之间需要划分几个区间

第二步手机是用来在已发现可以导致手机摔坏的区间内一级一级往上加楼层已具体测试是哪一层的工具。

假设第一步手机划分的区间为a个,每个区间包含的层数为b。

则可以得出a*b=100。

所谓的最优化,既是让测试的次数尽量最小,即让a+b+1次数尽量最小,也就是让a+b最小。

现在就简单了,转化为一个数学题。已知a*b=100,问当a+b取最小值时,a=?,b=?。

这个问题我就不回答了,在场的估计有90%以上的人能得出当a=b=10时,a+b取最小值。

具体做法就是:
将一部手机从10楼扔下,如果坏,则拿第二部手机从一楼开始,逐层往上试,则实验最大次数为10+1=11次。
如果没坏,则将第一部手机从20楼仍下,如果坏,则将第二部手机从11楼开始,逐层往上试,实验最大次数为10+2=12次。
以此类推,当第一部手机从第90层扔下时,如果坏,则从81曾逐层往上,如不坏,也不用从第一百层扔了,从91层开始吧。
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值