腾讯抛玻璃球问题

题目:腾讯大厦有39层,你手里有两颗一模一样的玻璃珠。当你拿着玻璃珠在某一层往下扔的时候,一定会有两个结果,玻璃珠碎了或者没碎。大厦有个临界楼层。低于它的楼层,往下扔玻璃珠,玻璃珠不会碎,等于或高于它的楼层,扔下玻璃珠,玻璃珠一定会碎。玻璃珠碎了就不能再扔。现在让你设计一种方式,使得在该方式下,最坏的情况扔的次数比其他任何方式最坏的次数都少。也就是设计一种最有效的方式。

 

个人思路:

 

采用一种风险均摊的思想(寻组所需次数 + 组内寻位所需次数 = K(K为常数),即最坏情况需要的次数等于K)

将楼层从下到上分组为1-9,10 - 17,18 - 24,25 - 30,31 - 35,36 - 39  共6组,每组的层数分别为9,8,7,6,5,4

判断过程如下所示:

1.寻组:从第一组开始,在每一组的最高层抛一次玻璃球,直至玻璃球碎掉,确定临界层所在分组a

2.寻位:从第a组的最底层开始抛玻璃球,直至玻璃球碎掉或到达第a组的第二层(从高往低),确定临界层b

K = 寻组所需次数 + 组内寻位所需次数  = 1 + 8 = 2 + 7 = 3 + 6 = ... = 6 + 3 = 9

因此,最多9次即可找到临界层。

 

 

 

你可能感兴趣的:(笔试题练习)