首页 > 其他分享 >100层楼两部手机,找出至少需要扔多少次能找到恰好能保证手机不被摔碎的楼层

100层楼两部手机,找出至少需要扔多少次能找到恰好能保证手机不被摔碎的楼层

时间:2023-10-31 21:13:45浏览次数:27  
标签:摔碎 楼层 层楼 手机 100 次能 我们

100层楼两部手机,找出至少需要扔多少次能找到恰好能保证手机不被摔碎的楼层

前言

​ 前不久遇到一个人问我这个问题,大概是这样的:你现在有两部手机,然后有一栋100层楼高的楼层,最少需要扔多少次手机,你才能找到恰好能保证手机不被摔碎的楼层?手机一旦摔碎就无法再继续测试了,我们会至少从1层扔,0层一定不会碎(即有100层楼可以给我们选择)

​ 当时一下就白给了,后面想了下发现其实也不是很难,下面讲一下我最近想到的该如何去寻找这个值。

思路

​ 我们总共只有2部手机,假如我们第一次选择的楼层为x,如果此时第一部手机摔碎了,剩下的(x - 1)层楼我们必须从1楼开始扔,扔到第(x-1)层,才能知道哪一层恰好可以保证手机不被摔碎,那么总共就需要x次是吧;与此同时,如果此时在x层我们没有摔碎手机,那我们可以再往上找一个新的楼层开始扔,我们假设为x2吧,那么如果此时手机摔碎了,我们要从第(x + 1)层开始往上找到第(x2 - 1)层,才能找到恰好能保证手机不被摔碎的楼层。大概思路是这样,那我们先随便找个方式试一下吧。

​ 假设我们每10层扔一次,假如第一次扔摔碎了,我们从1楼开始扔,最多扔到9层就可以找到在1-9楼哪个楼层恰好不碎了,加上我们一开始在10楼扔了一次,我们最多需要扔10次就可以找到答案了;如果第一次没摔碎,我们从第20层开始扔,假如第二次扔摔碎了,我们从第11楼开始扔,从11楼找到第19楼同样需要9次,加上在第10楼与第20楼扔的两次,总共需要11次。这时候我们就发现问题了:

如果我们每10楼一扔,那么在越高的楼层才恰好会碎的话,我们需要的次数越多!每当我们扔了一次后,就应该让在下一次会扔碎的楼层最大需要查找的次数减一,从而使其达到一种平衡,即不管它在我们第几次仍的时候碎掉了,其最坏情况时所需要的查找次数相等

​ 假设我们在第x层开始扔,为了保证下次扔的时候,最坏情况与第一次扔就碎的最大所需次数相等,那我们第二次就应该在第x + x - 1层扔,这样我们就能保证如果第二次扔的时候坏了,也同样需要x次就可以找到目标楼层。依次类推,最后一次扔的时候只需要查找一次即可。

可得到如下式子:x + (x - 1) + ... + 2 + 1 >= 100,使用等差求和公式与简单的一元二次方程的知识,就可以轻松得到x>=14,即最多我们需要14次就可以找到答案!

标签:摔碎,楼层,层楼,手机,100,次能,我们
From: https://www.cnblogs.com/ZJHqs/p/17801526.html

相关文章

  • 安卓主板_MTK联发科安卓手机主板开发板方案定制
    安卓主板方案定制成熟的平台有:MT6761,MT6762,MT6765,MT8788,MT6785,MT8390,MT6853,MT6833,MT6877,MT6893(天玑1200),MT6983(天玑9000)联发科安卓核心板。安卓主板应用在传统智能交互设备中嵌入主板的PCBA,采用ARM应用处理器平台运行google的android智能化操作系统,面向的是特定应用领域的高性能、重......
  • 神策数据荣登界面新闻「REAL 100 创新家」榜单
    10 月 26 日,界面新闻在北京举办第三届 REAL 科技大会,并在会上发布「REAL100 创新家」榜单,遴选出最能代表前沿产业趋势的公司,展示出这一年里多元化的创新力量。神策数据从数百家入围企业中脱颖而出,作为专业的大数据分析和营销科技服务提供商,荣登年度企业服务「REAL100 创新家......
  • 转 软件测试面试题100题
    转 软件测试100题转的地址:软件测试常见面试题合集(内附详细答案)-NING的文章-知乎https://zhuanlan.zhihu.com/p/619120396 写文章  软件测试常见面试题合集(内附详细答案)NING ​关注她 你赞同过软件测试和开发相关内容最近看到......
  • 手机直播源码,Flutter 自定义 虚线 分割线
    手机直播源码,Flutter自定义虚线分割线学习使用Flutter进行虚线自定义控件练习 //自定义虚线(默认是垂直方向)classDashedLindextendsStatelessWidget{ finalAxisaxis;//虚线方向 finaldoubledashedWidth;//根据虚线的方向确定自己虚线的宽度 finald......
  • 【NO.98】LeetCode HOT 100—621. 任务调度器
    题目:621.任务调度器给你一个用字符数组tasks表示的CPU需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在1个单位时间内执行完。在任何一个单位时间,CPU可以完成一个任务,或者处于待命状态。然而,两个相同种类的任务之间......
  • 【NO.99】LeetCode HOT 100—647. 回文子串
    题目:647.回文子串给你一个字符串s,请你统计并返回这个字符串中回文子串的数目。回文字符串是正着读和倒过来读一样的字符串。子字符串是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例1:输入:s=“......
  • 【NO.100】LeetCode HOT 100—739. 每日温度
    题目:739.每日温度给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。示例1:输入:temperatures=[73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1......
  • iphone苹果手机突然多出来很多已通话、未接来电、拨出电话
    iphone苹果手机目前的安全性,大家有目共睹。但最近,突然发现电话列表里,有很多未接、或已接过的,但是手机在身边,一直没响过,也没打过。第一反应是手机被入侵了,但是后来一想,最近也没装过什么软件,而且这个入侵技术不是一般人能会,再说我等普通老百姓,对他们也没啥价值。突然想到可能是......
  • 手机通讯录好备份,那微信通讯录怎么办
    6-8微信联系已经成为我们日常生活沟通联系最常用的渠道之一,那么对于通讯录的提前备份就越来越重要了,防患于未然。如果是手动一个个联系人去抄写备份的话会花很多时间,特别是有些通讯联系人比较多的朋友。这里有一个小工具《微信通讯录极速导出工具》,可以方便快速地一键导出所有的微......
  • 嵌入式硬件中常见的100种硬件选型方式
    1请列举您知道的电阻、电容、电感品牌(最好包括国内、国外品牌)。电阻:美国:AVX、VISHAY威世日本:KOA兴亚、Kyocera京瓷、muRata村田、Panasonic松下、ROHM罗姆、susumu、TDK台湾:LIZ丽智、PHYCOM飞元、RALEC旺诠、ROYALOHM厚生、SUPEROHM美隆、TA-I大毅、TMTEC泰铭、TOK......