两颗棋子找出100层大厦中棋子摔碎的临界层

题意大概是这样:有一座100层的大厦,还有两个完全相同的棋子,问怎样扔棋子能够使得最坏情况下扔的棋子次数尽量少。

1.可以从第一层开始扔,直到第99层为止,那么最多扔棋子次数为99,显然不行,而且第二颗棋子没发挥其作用。

2.不管怎样,我们都可以建立一个模型:第一颗棋子依次扔的楼层为X1,X2,X3,……,Xn,假如在Xi层摔碎,说明临界层大于X(i-1)小于等于Xi,这时用第二颗棋子从X(i-1)+1到Xi依次探测即可,而1中的做法就是取1,2,3,……,99。
现在我们要使不管在什么情况下,第一颗棋子和第二颗棋子扔的次数和最小,显然平均起来就会最小,不然像1中那样子最好扔1次,最坏扔99次,而答案取最坏的也就是99。要做到平均可以这样,假如第一颗棋子第1次在X1层没摔碎,那么第2次就要少扔一次(即减少探测的层数,补偿刚才第一颗棋子在X1层没摔碎,这样最坏情况下总次数就一样了),同理第二次在X2层没摔碎,那么第三次也要比第二次少扔一次。依次类推,最后不管在哪一层摔碎,所需要的次数(第一颗棋子和第二颗棋子扔的次数总和)都是一样的。
按照上面的做法,设X1=x,可以得到等式x+(x-1)+(x-2)+……+1>=99,得x>=14,因此X1,X2,X3,……,Xn的取值为14,27,39,50,60,69,78,85,91,96,99。不管在哪一层是临界层,这样扔的次数总是小于等于14。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值