一个有趣的问题

前言

前几天在CSDN上看到了一道有趣的问题,可分享给大家。

问题描述

有一种玻璃杯从一栋100层的大楼扔下,该种玻璃杯超过某一层楼会摔碎。现在给你两个杯子,问确定最低摔碎的楼层需要摔多少次?
注意:这个问题的解读应该是尽量让次数是常数,不随最低摔碎楼层的高度受影响

解答

刚开始可能会想到用二分法,但是用二分法的话,次数会随摔碎楼层的高度的变化而变化,而且可能在还没知道具体哪个楼层之前两个杯子就全摔碎了!!!
既然是两个杯子,那就是两个杯子各有作用了,可以想到的是,一个杯子确定范围,一个杯子确定具体楼层,可以这样考虑,相同楼层间隔下:最低摔碎的楼层越高,Cup1需要扔的次数越多,Cup2需要扔的次数可认为相同;Cup2需要扔的次数随楼层间隔的增加而增加。这里我们可以使Cup1需要扔的楼层间隔递减,这样可改善高楼层所需Cup1/Cup2扔的次数。假设第一次扔的楼层间隔为X,此后依次递减1层,直到楼层间隔为2.则:
x + ( x − 1 ) + ( x − 2 ) + . . . + 2 > = 100 x+(x-1)+(x-2)+...+2 >=100 x+(x1)+(x2)+...+2>=100
答案是14。

结束语

本人大三学生一枚,学识尚浅,不喜勿喷,希望今日能抛砖引玉,请各位大佬一定不吝赐教!!!
参考自链接:https://www.jianshu.com/p/768dce3c1c18

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值