2个鸡蛋100楼问题

谷歌面试题之扔鸡蛋的问题(蓝桥杯摔手机的问题) 来自一个古老的公众号(摔手机就是根据扔鸡蛋过来的) 吐个槽先 正如昨天所说,这道题据说它最早见于谷歌的某次面试,由于题目表述容易,而解答相对麻烦,于是被很多人采用,广泛见于一些算法、规划的面试里。 要说清楚这个问题有点难度,有兴趣的小伙伴务必要静下心来仔细看。 首先我想说,该问题的情境构造是有缺陷的。因为在现实中,影响鸡蛋是否会破裂的最重要因素应该是地面的坚硬和平整程度,而不是鸡蛋下落的高度:把... 阅读详情

https://www.cnblogs.com/yangai/p/5391533.html

博客1

两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。

有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋可以安全落下的最高位置。可以摔碎两个鸡蛋。

最少需要几次测试,才能得到摔碎鸡蛋的楼层?方案如何?

=================================================

对于这个问题,如果从编程角度而言,最简单的思路是用动态规划的思想来解决,不过本文不将其从编程角度分析,而是从数学角度对问题进行论述。

================================================

对这个问题,原始问题——【100层楼,最少需要几次测试,才能得到摔碎鸡蛋的楼层】,直接考虑不容易考虑,但是,如果将这个问题进行一种等价的转换,这个问题将会变得非常容易解答。个人认为,这个转换是解决这个问题的核心,这个转换是:

转换问题——【两个鸡蛋,进行k次测试,最多可以测试几层楼】

如果大家能想到将“原始问题”变为“转换问题”,这个问题个人认为已经解决一半了,转换后,这个问题豁然开朗,思路全开。

现在我们以“转换问题”为模板进行考虑,有两个鸡蛋,第一个鸡蛋如果破碎,第二个鸡蛋就必须只能一层一层的测试了,而且,我们要求进行k次测试就将摔碎鸡蛋的楼层必须找到.

=====================================================

考虑第一次测试。第一次测试的时候,第一个鸡蛋不能放置的楼层太高了,否则,如果第一个鸡蛋破碎,第二个鸡蛋可能不能在k次测试后得到结果。但是也不能放置的矮了,因为如果放置的矮了,第一个鸡蛋破碎了还好说,如果没破,我们浪费了一次测试机会,也不能说是完全浪费了,不过至少是让效用没有最大化。所以,第一次测试的时候必须让第一个鸡蛋放置的不高不矮。

不高不矮是多高?高到如果第一个鸡蛋破碎后第二个鸡蛋刚好能完成k次测试得到结果这个目标。由此可知,第一次测试所在的楼层高度为k,如果第一次测试第一枚鸡蛋破碎,则剩下k-1层楼,一层一层的试,k次一定能完成目标。

如果第一次测试,第一枚鸡蛋没有破碎,则我们现在只有k-1次测试机会了,而且直到了k楼及其以下都是安全的了。我们消耗了一次测试机会,但是一次就测试了k层楼。

然后只有k-1次机会了,第二次测试,我们可以在k层的基础上再增加k-1层了,注意,这个时候由于我们只有k-1次机会,所以这次只能再增加k-1层,以保证测试的时候第一枚鸡蛋破碎的情况下仍然能完成任务。

于是,重复上述过程,直到最后一次机会,我们总共测试的楼层数为:
这里写图片描述

然后,再回到“原始问题”,100层楼,如果需要k次测试才能测试完成,则必须有

这里写图片描述

则可以得到,k≥14

也就是需要14次测试才能得到结果,而且这个过程也将测试方案一并得出来,就是第一次在14楼测试,如果第一枚蛋碎,则剩余13次机会,13层未知楼层,恰好,第二次在14+13=27楼测试,如此。

然后,这个问题这个时候还可以扩展了,如果我们有三个鸡蛋,有k次机会,我们最大可以测试多少层楼?

思路同前面一样,第一次测试,不能太高也能太矮,必须恰到好处,也就是第一枚鸡蛋如果破碎,剩余k-1次机会能将剩余楼层给测试完。

由上面结论,k-1次机会最多可以测试k(k-1)/2层楼,所以第一次在k(k-1)/2+1层楼,第一次如果第一枚鸡蛋不碎,第二次在此基础上增加(k-1)(k-2)/2+1层楼,于是,三个鸡蛋k次机会总共测试楼层数为

这里写图片描述

k=9.

至于四个鸡蛋,五个鸡蛋,以至于M个鸡蛋,可以以此类推,方法同上。


https://blog.youkuaiyun.com/wolinxuebin/article/details/47057707

博客2

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

二、思路:
  先假设,最小的次数为x次。
  首先在x层摔,那么会出现两个结果:
  1、碎了,为了找出那一层碎了,第二个鸡蛋必须从1~x-1进行遍历的摔
  2、没碎,那么第二次就在x+(x-1)楼层摔。

为什么是x+x-1楼层呢?
首先我们已经假设了通过x步我们就能得到答案,现在我们在x层已经用了一次了,那么就只剩下x-1步了。所以我们选择x+(x-1)层,如果碎了,我们就能通过x-2步,遍历x+1~x+(x-1)-1的所有楼层。

3、如果在x+(x-1)楼碎了,那么同1,遍历x+1~x+(x-1)-1
  4、没碎,那么同2,就在x+(x-1)+(x-2)层摔
  …
  最后我们将会得出这样一个楼层公式x+(x-1)+(x-2)+…+1 = x(x+1)/2。
  这个公式有什么意义呢?
  有, x(x+1)/2 >= 100,这样才能顺利的解除x。
  有人说,x(x+1)/2 = 99就可以,如果鸡蛋在99层都没碎,那么必定是100层。 我想说谁告诉你记得一定会碎!
  那么我们就顺利的解除 x=14。

三、扩展
  此题还有一个扩展,就是为N个鸡蛋从M层摔找出最小值。
  那就不是很好手解了,所以写了代码,使用动态规划原理。动态规划式子如下:

f[n][m] = 1+max(f[n-1][k-1],f[n][m-k]) k属于[1,m-1] 解释下原理:
1、当手里有n个的时候,鸡蛋从k层往下摔,如果破了,那么手里只有n-1鸡蛋了,那么就需要测试f[n-1][k-1]楼层。或者更通俗好理解点的,我们运用2个鸡蛋100楼层的题目举例子。以上式子变为:f[2][m]
= 1+max(f[1][k-1],f[2][m-k])   那么当手里有2个鸡蛋的时候,在k层摔,碎了。那么现在手里也就只有一个鸡蛋了,此时我们必须遍历1~k-1找出第一次碎的楼层。所以为1+f[1][m-k],前面的1代表在k层的操作。
2、没破,那么手里还有n个鸡蛋,那么需要测试k+1~m这些楼层。

此时我想问下,当手里有2个鸡蛋测试1~m-k层和手里有2个鸡蛋测试k+1~m有什么区别?
有人说有,因为楼层越高越容易碎,那其实是你个人的想法罢了。其实并没有区别,所以第一个公式可以写为f[n][m-k]。

最后附上代码,为了理解方便,而不必从数组从0开始而困扰,这里就空间多开了点,所以如果拿去用的话,可以优化下:

public class Eggs{
    public int countMinSetp(int egg,int num){
        if(egg < 1 || num < 1) return 0;
        int[][] f = new int[egg+1][num+1];//代表egg个鸡蛋,从num楼层冷下来所需的最小的次数
        for(int i=1;i<=egg; i++){
            for(int j=1; j<=num; j++)
                f[i][j] = j;//初始化,最坏的步数
        }

        for(int n=2; n<=egg; n++){
            for(int m=1; m<=num; m++){
                for(int k=1; k<m; k++){
                    //这里的DP的递推公式为f[n][m] = 1+max(f[n-1][k-1],f[n][m-k]) k属于[1,m-1]
                    //从1-m层中随机抽出来一层k
                    //如果第一个鸡蛋在k层碎了,那么我们将测试1~k-1层,就可以找出来,也即1+f[1][k-1]
                    //如果第一个鸡蛋在k层没有碎,那么我们将测试k+1~m也即m-k层,
                    //      这里也是重点!!!! 
                    //      现在我们手里有2个鸡蛋,要测试m-k层,那么我想问,此时和你手里有2个鸡蛋要测试1~m-k层有什么区别?
                    //      没有区别!是的在已知k层不碎的情况下,测试k+1~m层的方法和测试1~m-k没区别,所以可以写成 1+f[n][m-k] 其中1表示为 在k层的那一次测试
                    f[n][m] = Math.min(f[n][m],1+Math.max(f[n-1][k-1],f[n][m-k]));
                }
            }
        }
        return f[egg][num];
    }
    public static void main(String[] args) {
        Eggs e = new Eggs();
        System.out.println(e.countMinSetp(2,100));
    }
}
【经典算法题】用两个鸡蛋和100层的楼来测鸡蛋硬度 前几天看到一个挺有意思的面试问题,据朋友说今年字节和Shopee都问过。 题目如下: 有2个鸡蛋,在总共有100层的楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层。 问:如何用最少的尝试次数,测试出鸡蛋不会摔碎的临界点? 朋友给了一个文档,里面收集了一部分今年大厂的智力题和解答,对于这题有详细的分析和解答,但是并不全面,尤其是在确定第一次扔鸡蛋的楼层数上。 --------------------下面是我的解答,可供参考------------ 阅读详情

相关推荐

【动态规划】2只鸡蛋与100层塔问题(有详细说明和思路代码)

参考博客链接:https://blog.youkuaiyun.com/Autumn03/article/details/80886814 题目:2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度,比如鸡蛋在第9层没有摔碎而在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层,如何用最少的尝试次数,测试出鸡蛋不会摔碎的临界点? 题目中隐藏的含义是两个鸡蛋最多只能先碎一个,碎第二个的时候就要得出最终答案。 ...

WEN_Windy的博客 1843

两个鸡蛋--一道Google面试题

前两天翻译Python文档翻译到手软。今天不想翻译了,上网闲逛,在http://programming.reddit.com/ 上看到一道有趣的题目,据说是清华东门某家公司的面试题。原文地址http://classic-puzzles.blogspot.com/2006/12/google-interview-puzzle-2-egg-problem.html 两个软硬程度一样但未知的鸡蛋,它

TravelInHistory 2万+

【微软算法面试高频题】丢鸡蛋问题

1. 题目 如果你有2颗鸡蛋,和一栋100层高的楼,现在你想知道在哪一层楼之下,鸡蛋不会被摔碎,应该如何用最少的测试次数对于任何答案楼层都能够使问题得到解决。 如果你从某一层楼扔下鸡蛋,它没有碎,则这个鸡蛋你可以继续用 如果这个鸡蛋摔碎了,则你可以用来测试的鸡蛋减少一个 所有鸡蛋的质量相同(都会在同一楼层以上摔碎) 对于一个鸡蛋,如果其在楼层iii扔下的时候摔碎了,对于任何不小于iii的楼层,这个鸡蛋都会被摔碎 如果在楼层i扔下的时候没有摔碎,则对于任何不大于iii的楼层,这颗鸡蛋也不会摔碎 从第1层扔下

MS_Stephen的博客 668

双蛋问题-动态规划

一、问题描述 有一座100层的楼,有一个鸡蛋,在低楼层的时候将鸡蛋扔下不会碎,但是高楼层扔下会碎。存在一个临界楼层从该楼层之上抛下来,鸡蛋一定会碎。现在有N个鸡蛋可以做检查(鸡蛋没碎可以重复使用,但是碎了就不能使用了),在最坏情况下,最少几次(M)能够找到这个临界楼层。 二、尝试 1)假设N=1,为了确保鸡蛋不会碎,只能从第一层开始往上扔,直到鸡蛋碎了为止,最化情况下M=100。 2)假设鸡蛋有无限多,可以使用二分法来解决这个问题,即在第50层往下扔,如果鸡蛋碎了就在25层继续扔,如果没碎的话,在7

平凡 2167

两个蛋的问题(two eggs)

goole曾用来做面试题,国内一些大型互联网公司也用过,这个文档是原版论文 两个软硬程度一样的鸡蛋,不过可能都在一楼就摔碎,也可能从一百层楼摔下来没事。现在有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋可以安全落下的最高位置。要求给出最坏情况下的最少测试次数。

Ubuntu 20.04下IgH EtherCAT主站部署实战

本文详细介绍了在Ubuntu 20.04系统上部署IgH EtherCAT主站的完整流程,包括环境准备、源码编译、内核模块配置、网络接口设置及实时性优化等关键步骤。通过实战案例和常见问题排查,帮助开发者快速掌握EtherCAT主站部署技巧,提升工业自动化系统的稳定性和实时性。

weixin_30596343的博客 1071

leetcode扔鸡蛋问题总结

扔鸡蛋问题是一道经典的面试题,他的简单一点的问法是给两个鸡蛋,一百层楼,找到最少的尝试次数,找到鸡蛋不会摔碎的临界楼层。 这个问题的解法有这么几种,二分法,平方根法,解方程法,具体的解释可以看一下这个博客,这里详细说一下最优解法解方程法, 假设问题存在最优解(扔鸡蛋过程),这个解的最坏情况尝试次数是x次,那么,我们第一次扔鸡蛋该选择哪一层? 恰恰是从第x层开始扔,选择更高一层或是更低一层都不...

weixin_42069523的博客 2444

GEE影像重采样实战:从10米到500米,如何用.reduceResolution和.reproject统一尺度?

本文详细介绍了在Google Earth Engine (GEE)平台中,如何利用`.reduceResolution()`和`.reproject()`方法解决多源遥感影像的尺度统一难题。通过实战案例,从哨兵2号10米分辨率影像聚合至MODIS 500米尺度,阐述了聚合规则选择、参数配置及效果验证的全流程,为环境监测、农业分析等领域的跨尺度数据融合提供了关键方法。

weixin_29223603的博客 84

清晰解题:扔鸡蛋问题

一幢 100 层的大楼,给你两枚鸡蛋。假设,在第 n 层扔下鸡蛋,鸡蛋不碎,那么从第 n-1 层扔鸡蛋,鸡蛋也不会碎。两个鸡蛋一模一样,不碎的话可以扔无数次。目标是利用这两个鸡蛋找出临界楼层 t , 使得鸡蛋从 t 层扔下不会碎, 从 t+1 层扔下会碎。 现要求回答, 最少需要多少次尝试, 才能保证在最坏的情况下,找到楼层 t , 且需要给出尝试的策略。 明确问题 题目要求是考虑 在...

萧萧的专栏 8341

Sigrity IBIS建模实战:如何用T2B工具快速转换SPICE模型(附避坑指南)

本文详细介绍了如何使用Sigrity T2B工具将SPICE模型高效转换为IBIS模型,涵盖从环境配置、模型预处理到转换流程和验证策略的全过程。通过实战案例和避坑指南,帮助硬件工程师掌握高速电路设计中的IBIS建模技术,提升信号完整性分析效率。

weixin_29243279的博客 395

从GWAS到单细胞:利用seismic包精准定位疾病相关的关键细胞亚群与驱动基因

本文详细介绍了如何利用seismic包将GWAS与单细胞测序数据结合,精准定位疾病相关的核心细胞亚群与驱动基因。通过创新的统计算法和实战案例,帮助研究者从遗传汇总数据中挖掘关键生物学机制,提升疾病研究的精准度和效率。

weixin_29215815的博客 441

谷歌面试-扔鸡蛋

今天想跟大家分享一个有意思的面试题,这让我再一次感叹思维的奇妙,接下来我们一起看看吧~首先来看看题目:你有2颗鸡蛋,需要以来判断在100层的高楼上,哪一层楼是鸡蛋的安全层。换句话说,就是需要确定我们从哪一层楼扔鸡蛋下去,鸡蛋恰好不会摔碎。高于安全层鸡蛋都会碎,低于安全层都不会碎。比如鸡蛋在第1层没有摔碎,在第2层摔碎了,那么鸡蛋的安全层就是第1层。这里有几个假设条件:没有摔碎的鸡蛋可以重复使用;每颗鸡蛋的坚硬程度都是相同的。

qq_44859233的博客 7291

LLaMA-Factory微调教程5:多模态VLM模型对话

视觉-语言模型(VLM)概述与应用 视觉-语言模型(VLM)是一类结合视觉和语言信息的人工智能模型,旨在实现跨模态的理解与交互。其核心目标包括跨模态理解和生成能力,关键技术涉及模态表示与映射、多模态预训练以及跨模态交互机制。 典型VLM模型包括: CLIP:通过对比学习实现图像和文本的向量空间对齐 BLIP:结合自监督和弱监督学习提升语义对齐 ALBEF:基于BERT结构扩展跨模态注意力 DALL-E系列:基于文本生成图像的生成式模型 CLIP4Clip:扩展CLIP到视频领域 VLM在图像/视频检索、视觉

Cachel Wood的博客 1114

2个鸡蛋,100层楼问题

https://blog.youkuaiyun.com/Sirius_han/article/details/81152572 题目: 现有两个硬度相同的鸡蛋,以及一栋100层的楼,如果鸡蛋在第n层楼摔下去不会碎,在n-1层楼摔下去会碎,那么鸡蛋的硬度是n,如果要测出鸡蛋的硬度n,在最坏情况下最少要测试几次?每测试一次就把一个鸡蛋从x层楼扔下去;只有两个鸡蛋可用,鸡蛋摔碎了就不能用了; 题目分析: 1...

孔孔的博客 2901

《备考系统分析师》 - 专栏介绍和目录

本专栏提供软考高级系统分析师全套备考资料,包含四大核心内容:1.详细考点梳理(覆盖基础知识、关键技术、案例实践三大模块16个章节);2.历年真题及解析(2009-2022年所有真题含综合知识、案例分析和论文);3.100+篇高质量论文范文;4.预测模拟题。早鸟价仅需9.9元,可节约80%资料搜集时间,帮助考生高效备考、顺利通过考试。专栏持续更新,有问题可随时联系作者。

数据知道的博客 1万+

OceanBase备租户创建(二):通过BACKUP DATABASE PLUS ARCHIVELOG

OceanBase数据库备租户创建方法二:通过BACKUP DATABASE PLUS ARCHIVELOG功能实现,特别适用于社区版和单机版部署模式。

Sebastien23的博客 541

[转]动态规划-100层楼扔鸡蛋问题

x*(x+1)/2=100层楼,x为最优解  第二天         题目:扔鸡蛋问题   有2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,...

aBen_Dan的博客 1026

【系统分析师】写作框架:软件设计模式及其应用

本文围绕"软件设计模式及其应用"展开论述。首先介绍了近三年参与的某软件开发项目背景及个人承担的系统设计工作。其次系统阐述了设计模式的三大分类:创建型(如工厂方法、单例模式)、结构型(如适配器、装饰器模式)和行为型(如观察者、策略模式),重点分析了各类模式的特点和典型应用场景。最后结合项目实践,详细说明了采用的三种设计模式的具体实施过程及效果,包括提高代码复用性、降低耦合度等优势。文章还总结了项目经验,指出存在的不足及改进方向,强调合理运用设计模式对构建高质量软件系统的重要性。全文通过理论

数据知道的博客 5061

100层楼扔2个鸡蛋、3个鸡蛋……

原题目 现有2个鸡蛋,楼高100层,假设从n层楼及以上扔下会摔碎,n层以下不会,那么怎样扔能以最小的次数得到n? 分析 最先想起来的是二分法的题目:100层最少需要扔多少次鸡蛋才能求得n?答案是ceil(log2(100))=7 。不过现在只有两个鸡蛋,这种方法就不行了。采用二分法的话,如果1号蛋在50层碎了,那剩下一个鸡蛋只能从1层开始慢慢扔了,需要扔1+49 = 50次。 另外一种容易

Focustc 2万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

2个鸡蛋,100层楼问题;

题目: 现有两个硬度相同的鸡蛋,以及一栋100层的楼,如果鸡蛋在第n层楼摔下去不会碎,在n-1层楼摔下去会碎,那么鸡蛋的硬度是n,如果要测出鸡蛋的硬度n,在最坏情况下最少要测试几次?每测试一次就把一个鸡蛋从x层楼扔下去;只有两个鸡蛋可用,鸡蛋摔碎了就不能用了; 题目分析: 1:二分???? 刚开始看到这个题脑子里最先蹦出来的就是二分;每次取一半,log(n)的算法,然后稍微深入分析一下就悲...

Sirius_han的博客 2093

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

100层楼扔两个鸡蛋的问题

100层楼扔两个鸡蛋的问题   (2014-06-25 16:31:35) 转载▼ 标签:  转载 分类: 软件工程 原文地址:100层楼扔两个鸡蛋的问题作者:魂之木 两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。 有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋

jfkidear的专栏 4882

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

100层楼,2个鸡蛋问题

转自:http://blog.sina.com.cn/s/blog_6c813dbd0101bh98.html 两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。 有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋可以安全落下的最高位置。可以摔碎两个鸡蛋。 最少需要几次测试,才能得到摔碎鸡蛋的楼层?方案如何? ==========================...

KK1015的博客 2464

你还在用二分法求2个鸡蛋100层楼的问题吗?

题目 2个鸡蛋,100层楼,如何用最少的试验次数得到在鸡蛋落下不碎的最高层数?这一据说曾被谷歌纳入校园招聘题库的经典面试题,想必许多人都曾遇到过,又有多少人与我一样,不加思索就直接回答用二分法查找的? 但是,二分法真的是最优试验方法吗?接下来我们来分析几种解法。 首先我们先认真看一下完整的题目(之前做过这道题的同学可以跳过这一步): 原题:两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼扔下来就摔...

HanpengChen的博客 2029

100楼扔鸡蛋

x*(x+1)/2=100层楼,x为最优解 第二天 题目:扔鸡蛋问题 有2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层。 问:如何用最少的尝试次数,测试出鸡蛋不会摔碎的临界点? 举个栗子,最笨的测试方法,是什么样的呢?把其中一个鸡蛋,从第1...

Alihuhu 432

100层楼2个鸡蛋

问题: 有两个一样的特殊鸡蛋,它们有可能在1楼就摔碎了,也有可能从100楼摔下都没碎。现在有100层楼,要你用这两个鸡蛋通过最少的次数确定哪一层是鸡蛋可以安全落下的最高位置。 思路1: 很多人看到这个问题,最先想到的可能是二分法:第一个鸡蛋在50层扔碎了,那第二个鸡蛋在25层扔,没碎再在37层扔,碎了则在13层扔……。这样问题完全变为二分查找,但要求鸡蛋足够多,现在只

luzheng的专栏 1223

关于100层楼,扔两个鸡蛋,求摔碎鸡蛋的临界层的问题

题目描述:         两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋可以安全落下的最高位置。可以摔碎两个鸡蛋。   网上有人说可以写动态规划方程来解决,我也没看。不过依我之见,这个问题通过简单的证明就可以得出结论。我们可以直接对n层建筑来分析。 如果我们只有一个鸡蛋,那么只能从最底层,一层一层的

woodbean的专栏 5206
上一篇: 二分查找法
下一篇: 查找数组的相对“平衡点”
ka_ko
博客等级 码龄11年 168粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值