论坛首页 综合技术论坛

百度二面智力题(破碎临界层)

浏览 55404 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-10-29  
see my 2007/5/12 blog, but it's in english.
http://jellyfish.iteye.com/admin/blogs/79044
0 请登录后投票
   发表时间:2011-10-31  
这个应该是2级的查找。

先用2个球尝试1,2两楼  ,然后3,4两楼,然后5,8两楼,让9,16两楼   即2的n次方+1 到2的n+1次方。

n从0开始,比如如果n=6时有球摔坏了,按照lz的题目,要么是第64楼摔碎了,要么是第100楼摔碎了。

如果是第64楼摔碎了,临界点就是64楼,如果是100楼摔碎了,就要在65-99之间重新查找。
0 请登录后投票
   发表时间:2011-10-31  
采用分段策略,将100层分为x段,假设临界层所在的那段有(y+1)个(包括尾节点,但不包括首节点),则y的最小值是1,倒叙分段将y依次递增,得到分段层应该是:99,97,94,90,85,79,72,64,55,45,34,22,A(根据以上判断最少要13个分段层,故A的取值范围应在9~14之间),综合上述,最少要14次。
0 请登录后投票
   发表时间:2011-10-31  
jiangjianghu 写道
采用分段策略,将100层分为x段,假设临界层所在的那段有(y+1)个(包括尾节点,但不包括首节点),则y的最小值是1,倒叙分段将y依次递增,得到分段层应该是:99,97,94,90,85,79,72,64,55,45,34,22,A(根据以上判断最少要13个分段层,故A的取值范围应在9~14之间),综合上述,最少要14次。

据此得出通用结论:假设共有y层,最少要分x段,则有(x+1)x/2≈y
0 请登录后投票
   发表时间:2011-10-31  
表示 鸭梨很大
0 请登录后投票
   发表时间:2011-10-31  
这么高深的数学题 哎... 真的是不会了 ...
不管是不是分段查找还是挨层找... 前提条件都是这个球每摔一次都要把摔过的损坏度归0的情况下发生的;
要不然一个真实的球让你这么摔最好的结果就是第一层就摔坏了; 要不然你找到的那个临界层肯定要比真实的临界层 要低而且有可能低很多...
0 请登录后投票
   发表时间:2011-10-31  
开玩笑吧.如果在2 楼时候就破,你们这样分,能得到记过么?还有, 小玻璃球, 在第二层必须破.
0 请登录后投票
   发表时间:2011-10-31  
我觉得这就是个脑筋急转弯,你们说的都有理,但是都不是人家想要的.
0 请登录后投票
   发表时间:2011-10-31  
摔两次不会裂啊!! 程序员思维!
0 请登录后投票
   发表时间:2011-10-31  
zhanghh321 写道
我觉得7次就可以了呀。。50 25 13 6 3 2 1  (1层是最坏的情况)


弄反了吧,应该从低往上便利,如果是我的话,第一次我会从25层开始试!!

一定要注意,一共就有两个玻璃球!!
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics