一道有趣的算法题
2009-11-25 08:53
162 查看
日前在网上看到一道算法题。颇有意思,也细细的研究一番。现将该题发布于此,和各位交流一下。同时,本文也是笔者首次使用Office2007的博客功能,看看效果怎么样。
某幢大楼有100层。你手里有两颗一模一样的玻璃珠。当你拿着玻璃珠在某一层往下扔的时候,一定会有两个结果,玻璃珠碎了或者没碎。这幢大楼有个临界楼层。低于它的楼层,往下扔玻璃珠,玻璃珠不会碎,等于或高于它的楼层,扔下玻璃珠,玻璃珠一定会碎。玻璃珠碎了就不能再扔。现在让你设计一种方式,使得在该方式下,最坏的情况扔的次数比其他任何方式最坏的次数都少。也就是设计一种最有效的方式。
例如:有这样一种方式,第一次选择在60层扔,若碎了,说明临界点在60层及以下楼层,这时只有一颗珠子,剩下的只能是从第一层,一层一层往上实验,最坏的情况,要实验59次,加上之前的第一次,一共60次。若没碎,则只要从61层往上试即可,最多只要试40次,加上之前一共需41次。两种情况取最多的那种。故这种方式最坏的情况要试60次。
那该如何设计方式呢?
某幢大楼有100层。你手里有两颗一模一样的玻璃珠。当你拿着玻璃珠在某一层往下扔的时候,一定会有两个结果,玻璃珠碎了或者没碎。这幢大楼有个临界楼层。低于它的楼层,往下扔玻璃珠,玻璃珠不会碎,等于或高于它的楼层,扔下玻璃珠,玻璃珠一定会碎。玻璃珠碎了就不能再扔。现在让你设计一种方式,使得在该方式下,最坏的情况扔的次数比其他任何方式最坏的次数都少。也就是设计一种最有效的方式。
例如:有这样一种方式,第一次选择在60层扔,若碎了,说明临界点在60层及以下楼层,这时只有一颗珠子,剩下的只能是从第一层,一层一层往上实验,最坏的情况,要实验59次,加上之前的第一次,一共60次。若没碎,则只要从61层往上试即可,最多只要试40次,加上之前一共需41次。两种情况取最多的那种。故这种方式最坏的情况要试60次。
那该如何设计方式呢?
相关文章推荐
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】 .
- 一道有趣算法题(转自水源BBS)
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 一道有趣的算法题:仿照Excel的列编号,给定一个数字,输出该列编号字符串
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】
- 【算法】一道有趣的GOOGLE面试题
- 白话经典算法系列之十一 一道有趣的GOOGLE面试题 【解法2】
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 一道有趣的算法题
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 【算法】一道有趣的GOOGLE面试题 --【解法2】
- 白话经典算法系列之十一 一道有趣的GOOGLE面试题 --【解法2】
- 精妙算法收集---一道有趣的腾讯笔试加分题
- 一道有趣的数字算法题
- 一道有趣的面试算法题
- Nim Game,一个有趣的游戏,也是一道入门算法题。
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】