智力测试之鸡蛋问题的答案是什么.docxVIP

智力测试之鸡蛋问题的答案是什么.docx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智力测试之鸡蛋问题的答案是什么 好玩的智力测试题,鸡蛋的主人都不知道篮子里原有多少个鸡蛋,聪明的你能帮主人找到答案吗 在集贸市场里,有个农妇把自己喂养的鸡下的蛋放在篮子中出售。有个骑车的小伙子无意中碰了她的篮子,篮子碰翻了,鸡蛋都碎了。那个小伙子想要赔偿她的损失,问道:篮里一共多少鸡蛋正确数目不记得了,农妇答复,不过我知道当我从篮里把鸡蛋按2个一次或3个一次、4个一次、5个一次、6个一次拿出来时,篮里总还剩下一个,但当我按7个一次拿出来时,篮里一个也不剩了。 请问篮里原有多少个鸡蛋 聪明的小孩,你能告诉农妇她的篮子里有多少个鸡蛋吗 智力测试之2:数鸡蛋 一位老太太挎了一筐鸡蛋到市场去卖。路上被一名骑车的人撞倒,鸡蛋全部打破了。骑车人搀起老太太说:你带了多少鸡蛋我赔你。老太太说:总数我也不知道,当初我们从鸡窝里拣鸡蛋时是五个五个拣的,最后又多拣了一个;昨天我老头子查了一遍,他是四个一数的,最后也是多一个;今早我又数了一遍,是三个一数的,也是多一个。骑车人在心里算了一下,按市场价赔了鸡蛋钱。老太太一共带了多少鸡蛋 看答案 把这个问题转化成数学题就是:有一个数,无论用3、4、5去除,结果都余1,求这个数。换个说法:有一个数,减去1就能同时被3、4、5整除。显然,任何3、4、5的公倍数加1都是这个问题的解,最小的解是61,往下是121、181等等。问题中挎筐的是一位老太太,因此鸡蛋不可能很多,故可认为是61个。 智力测试之2:扔鸡蛋 只给你二个鸡蛋,你能上100层楼,你想知道鸡蛋的硬度。鸡蛋可能很硬或很脆弱,如果鸡蛋从第m层掉下而没破裂,而从第m+1层掉下就破裂了,那么这个鸡蛋的硬度就是m。你需要找出这个m和在最坏情况下最少试验次数。(经典鸡蛋问题) A:计算机学生可能会首先用第一个鸡蛋做二分搜索(O(logN))再用第二个递增做线性搜索(O(N)),最后必将用线性搜索结束因为用第二个鸡蛋时你无法确定最高一层。因此,问题变为如何使用第一个鸡蛋来减少线性搜索。 于是如果第一个蛋破裂在最高点我们要扔某-1次并且我们必须从某层高扔第一个蛋。现在如果第一个蛋的第一次扔没有破裂,如果第一个蛋在第二次扔破了我们要扔某-2次第二个蛋。假设16是答案,我需要扔16次才能找到答案。来验证一下是否可以从16层开始扔,首先从16层扔如果它破裂了,我们尝试所有其下的楼层从1到15;如果没破我们还能扔15次,于是我们将从32层(16+15+1)再扔。原因是如果它在32层破裂我们能尝试其下所有楼层从17到31最坏扔第二个蛋14次(总共能扔16次了)。如果32层并没破,我们还剩下能扔13次,依此类推得: 1+1516如果它在16层破裂,从1到15层最坏扔15次第二个蛋 1+1431如果它在31层破裂,从17到30层最坏扔14次第二个蛋 1+1345..... 1+1258 1+1170 1+1081 1+991 1+8100在最后我们能轻易地做到因为我们有足够多扔的次数来完成任务 从上表我们能看到最正确的一个在最后一步将需要0次线性搜索。 能把上述规律写为:(1+p)+(1+(p-1))+(1+(p-2))+.........+(1+0)=100. 令1+p=q上述式子变为q(q+1)/2=100,对100解答得到q=14。 扔第一个蛋从层14,27,39,50,60,69,77,84,90,95,99,100直到它破裂,再开始扔第二个蛋。最坏情况只需14次。 在只有一个鸡蛋时,保险起见,我们只能从一楼开始,一层一层地试验,看看鸡蛋有没有被摔烂。这样最精确,但是消耗的时间也最久。如果我们事先就知道这个鸡蛋不被摔碎的最高落下点在30层到75层之间,我们最多也只要尝试45次就能知道结果。现在我们手上有两个鸡蛋,根据上面的分析,一个合理的策略就是用第一个鸡蛋确定出一个较小的楼层范围,然后在这个范围里用第二个鸡蛋从下往上逐层尝试。 比方说让第一个鸡蛋每隔5层试验一次。当它在某一层被摔烂时,也就意味着确定了一个4层的待测试宽度(为什么是4层呢假设鸡蛋在5楼的时候没破,10楼的时候破了,那么我们就只需要知道鸡蛋在6,7,8,9层的结果)。这时候,用第二颗鸡蛋一层一层地尝试,就能用较少的次数找出鸡蛋刚好摔不烂的高度。 需要注意的是,如果想留给第二颗鸡蛋较小的测试宽度,就要缩短第一个鸡蛋的测试跨度。相应的,也就增加了尝试次数。为了确定适宜的跨度,使得总试验次数之和尽可能小,我们可以采取如下的方法。 设跨度是L,第一颗鸡蛋的尝试次数就是[100/L],第二颗鸡蛋的尝试次数就是L-1,因此尝试次数总和就是[100/L]+L-1根据这个公式,我们可以列出下面这个表: 可以看出,我们只需要选8-13之间的一个宽度,都能使得总尝试次数是19次。 但问题是,这已经是最优策略了吗,有没有更好的

文档评论(0)

136****8932 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档