`
android_mylove
  • 浏览: 399566 次
社区版块
存档分类
最新评论

100层楼有一个鸡蛋,如果确定刚好摔碎的那个楼层,最坏情况下最少需要摔多少次?

 
阅读更多

问题:

一种石头,在某一高度扔下就会碎,在这个高度以下不会碎,高度以上一定碎。现在有4个石头,1000层的楼房,需要测定这个石头破碎的高度。求最少多少次一定可以测出来。

分析:

这道题我们应反过来考虑,就是用a块石头扔b次至多一定可分辨层数X(a,b)。

先从最简装的一块石头考虑,很显然,
X(1,1) = 1
X(1,2) = 2
X(1,3) = 3
.
X(1,i) = i

再考虑二块石头,显而易见
X(2,1) = 1

对于X(2,2),我们可这样考虑,当我们扔第一次后,有两种可能:破和不破.

如果石头破了,则

1,我们还剩1块石头.
2,我们下一次只需检查下面的楼层.
3,我们还剩1次机会.
即我们还可分辨下面的 X(1,1) 层.

如果石头没破,则

1,我们还剩2块石头.
2,我们下一次只需检查上面的楼层.
3,我们还剩1次机会.
即我们还可分辨上面的 X(2,1) 层.

我们知道,X(1,1) = 1.所以我们第一次从第二层开始扔,如果石头破了,则再测试第一层.如果没破则再测试第三层.
所以用2块石头扔2次至多一定可分辨
1 + X(1,1) + X(2,1) = 1 + 1 + 1 = 3 层.

不失一般性,我们考虑
X(2,i)

对X(2,i),我们这样考虑,当我们扔第一次后,有两种可能:破和不破.

如果石头破了,则

1,我们还剩1块石头.
2,我们下一次只需检查下面的楼层.
3,我们还剩i-1次机会.
即我们还可分辨下面的 X(1,i-1) 层.

如果石头没破,则

1,我们还剩2块石头.
2,我们下一次只需检查上面的楼层.
3,我们还剩i-1次机会.
即我们还可分辨上面的 X(2,i-1) 层.


X(2,i) = 1 + X(1,i-1) + X(2,i-1)

接下来我们考虑
X(i1,i2)

同样,对 X(i1,i2),我们还是这样考虑,当我们扔第一次后,有两种可能:破和不破.

如果石头破了,则
1,我们还剩i1-1块石头.
2,我们下一次只需检查下面的楼层.
3,我们还剩i2-1次机会.

如果石头没破,则
1,我们还剩i1块石头.
2,我们下一次只需检查上面的楼层.
3,我们还剩i2-1次机会.


X(i1,i2) = 1 + X(i1-1,i2-1) + X(i1,i2-1)

很明显
无论你有几块石头,扔一次只能测试一层.


X(i,1) = 1.

这样,我们可制出如下表:

扔的次数: 1 2 3 04 05 06 007 008 009 010 011 012 013
分辨层数:
一块石头: 1 2 3 04 05 06 007 008 009 010 011 012 013
二块石头: 1 3 6 10 15 21 028 036 045 055 066 078 091
三块石头: 1 3 7 14 25 41 063 092 129 175 231 298 377
四块石头: 1 3 7 15 30 56 098 162 255 385 561 793 1092
五块石头: 1 3 7 15 31 62 119 218 381 637 1023
六块石头: 1 3 7 15 31 63 126 246 465 847 1485

也就是说用4块石头扔12次至多一定可分辨793层,扔13次至多一定可分辨1092层.

答案:

1000层的楼房,

用4块石头,扔13次一定可测试出来.


转载声明:本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kittyjie/archive/2009/10/27/4732415.aspx

分享到:
评论

相关推荐

    【北交大计算思维课训练题】电梯II(语言C#)

    楼里面有一部可以通达所有楼层的电梯,每上一层楼需要uu秒钟,下一层楼需要dd秒,每个楼层会停ss秒。目前电梯在第N(1 \le N \le 200)N(1≤N≤200)层的地面上。若某个楼层没有上下需求,则电梯运行中会跳过该楼层。...

    算法-鸡蛋的硬度(信息学奥赛一本通-T1300)(包含源程序).rar

    1. 如果只有1个鸡蛋,那么无论楼层有多少层,都需要尝试每层楼一次,所以D[1][j] = j。 2. 如果有j层楼,但没有鸡蛋,那么无法进行试验,所以D[i][1] = 1。 3. 对于更高层数的情况,我们需要找到一个分割点k,使得在...

    DropEgg_java版

    有一栋楼共100层,一个鸡蛋从第N层及以上的楼层落下来会摔破, 在第N层以下的楼层落下不会摔破。给你2个鸡蛋,设计方案找出N,并且保证在最坏情况下, 最小化鸡蛋下落的次数。 求鸡蛋承受楼层高度,java版

    关于多楼层电梯运行的程序

    模拟程序还包含一个调度器(Scheduler),它通过随机设置两个时间开始每一天:第一个时间是一个人首次走到1层,并按下楼层按钮召唤电梯时间,第二个时间是一个人首次走到2层,并按下按钮召唤电梯时间。每个时间都是...

    8层电梯控制器,电梯楼层控制器,Quartus II

    1. **输入信号处理**:FPGA需要能够正确识别8个按钮的输入状态,无论是单击还是持续按压,以及如何处理多个按钮同时被按下(多路复用)的情况。 2. **状态机设计**:电梯的运行状态可以抽象为一个有限状态机(FSM)...

    四层楼电梯自动控制系统的设计精简版【有CAD图】.doc

    在四层楼电梯自动控制系统的设计中,主要目标是构建一个基于AT89C51单片机的硬件电路和相应的软件方案,以实现对电梯运行的智能管理。这个系统能够接收各楼层的信号请求,并根据这些请求进行电梯的上升、下降以及在...

    vhdl电梯_模拟电梯VHDL_VHDL模拟4层楼电梯控制程序_FPGA电梯_

    2. **4层楼电梯控制程序**:这是一个简化版的电梯模型,只涵盖4个楼层。设计可能包括4个停靠站,每层一个,以及相应的上行和下行控制逻辑。 3. **FPGA电梯**:意味着这个VHDL模型将被实现到FPGA上。FPGA是一种可...

    电梯楼层显示电路

    电梯楼层显示电路.。。。。。。。。。。。。。。。。。

    是男人就下100层(java源代码)

    《是男人就下100层》是一款经典的Java游戏,基于WTK2.2和CLDC1.1平台开发,适合初级J2ME开发者学习。本文将深入解析这款游戏的源代码,带你了解J2ME游戏开发的基础知识。 一、J2ME简介 Java Micro Edition(J2ME)...

    四层楼电梯自动控制系统的设计.rar

    本设计主要探讨的是一个针对四层楼的电梯自动化控制系统的构建,旨在提高电梯运行效率,优化乘客体验,确保安全可靠。 首先,我们要理解电梯控制系统的核心原理。电梯控制系统一般基于微处理器或者PLC(可编程逻辑...

    四层楼电梯PLC控制设计

    1. 指层程序设计:根据每层楼的召唤信号,编写程序来确定电梯的运行方向和目标楼层,包括一楼至四楼的指层与消号程序。 2. 轿内指令登记与消号程序设计:处理轿厢内的指令,如上行、下行请求,同样涵盖了一至四楼的...

    一看吓一跳:高层住宅买哪几层最好?.pdf

    根据文档内容,本文将详细解释选择高层住宅楼层的考量因素、不同楼层的优缺点以及对理想楼层的建议。 1. 最佳楼层的选择:根据文档,最佳楼层通常位于大楼总高度的1/3到2/3处。以21层楼高为例,即7-14层之间。在...

    电梯楼层系数确定原则.pdf

    《电梯楼层系数确定原则.pdf》文件详细阐述了如何通过楼层系数这一机制来公平分摊电梯使用费用,其核心在于按照楼层高度合理设置系数,确保费用分配的公正性,同时兼顾业主的实际使用情况。 文件中提到,确定楼层...

    电梯控制器

    设计一个6层电梯控制器电路,用数码管显示电梯所在楼层号,电梯初始状态为第一楼层;每楼层电梯外都有上、下楼请求开关,电梯内设有乘客到达楼层的请求开关、电梯所处楼层、上升模式及下降模式的指示;电梯每2秒升降...

    c语言-下一百层游戏

    【标题】:“C语言-下一百层游戏” 在编程领域,C语言是一种广泛使用的、基础且高效的编程语言,尤其在系统编程、嵌入式开发以及游戏开发等方面有着重要的地位。"下一百层游戏"通常指的是一个经典的编程挑战,旨在...

    动态规划部分题解-c++描述

    "鸡蛋的硬度"问题,也被称为“鸡蛋掉落”问题,是一个典型的动态规划应用,涉及到最少的试验次数来确定在多少层楼高度鸡蛋会摔破。动态规划方法是通过建立状态转移方程,考虑在每个楼层投掷鸡蛋的最坏情况,从而找到...

    51单片机数码管四层电梯模拟系统(仿真+源代码+参考资料……)

    电梯外部第一层一个上行按键,第四层一个下行按键,其余每层两个上下行按键;电梯内部由四个按键代表要去的四个楼层,一个报警按键,一个紧急停止按键 3.驱动部分:通过电机的正反转来代表电机的上下运行 4.控制...

    C语言经典算法

    可能是一个概率问题,探讨在特定条件下鸡蛋打碎的概率,或者是在多层楼中找到一个鸡蛋刚好不会摔碎的楼层,这类问题有助于培养概率思维和优化搜索策略。 #### 1.10 分糖 涉及物品分配问题,如将一定数量的糖果公平...

    小学数学上楼梯问题专项提升.pdf

    例如,如果每上一层楼梯需要1分钟,那么从一层上到四层并不是需要4分钟,而是3分钟,因为只需要上3层楼梯。 解决这类问题的关键步骤包括: 1. 确定起始楼层和目标楼层,找出楼层间的间隔数。 2. 计算每个间隔对应的...

    FPGA全自动电梯控制(四层)

    【标题】"FPGA全自动电梯控制(四层)"是一个基于FPGA的电梯控制系统实现,主要使用了Verilog硬件描述语言进行编程。FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,允许用户根据需求配置逻辑功能,...

Global site tag (gtag.js) - Google Analytics