两颗棋子找出100层大厦中棋子摔碎的临界层
来源:互联网 发布:常宁网络电视安装电话 编辑:程序博客网 时间:2024/04/29 22:52
题意大概是这样:有一座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
- 两颗棋子找出100层大厦中棋子摔碎的临界层
- 谷歌面试题-100层楼两个棋子的问题
- 百层高楼+扔棋子
- Google面试题之100层仍两个棋子
- 一百层高楼和两个棋子
- 棋子
- 棋子
- 生活的一颗棋子
- 上帝的棋子
- 上帝的棋子
- 黑白棋子的移动
- 黑白棋子的移动
- 黑白棋子的移动
- 黑白棋子的移动
- 黑白棋子的移动
- 不开心的棋子
- 中國象棋演進中,紅藍兩色棋子不對稱的成因
- 新的挪棋子程序
- [面试] C/C++ 语法(六)—— RTTI(运行时类型信息)
- 大数 a+b 和 a-b
- Java核心知识点-I/O流
- [面试] C/C++ 语法(七)—— C++ 类型转换
- iOS 四层架构
- 两颗棋子找出100层大厦中棋子摔碎的临界层
- 初步接触 atom 插件
- 通过宏得到Array Length
- HYSBZ 1090 字符串折叠(区间dp)
- 小试循环(1)
- 梯度、梯度下降,随机梯度下降
- 二十六岁
- 我的思考,我的科技漫谈——Tay Tweets
- Java面试题合集