锁定老帖子 主题:百度二面智力题(破碎临界层)
精华帖 (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 |
|
返回顶楼 | |
发表时间: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之间重新查找。 |
|
返回顶楼 | |
发表时间: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次。
|
|
返回顶楼 | |
发表时间: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 |
|
返回顶楼 | |
发表时间:2011-10-31
表示 鸭梨很大
|
|
返回顶楼 | |
发表时间:2011-10-31
这么高深的数学题 哎... 真的是不会了 ...
不管是不是分段查找还是挨层找... 前提条件都是这个球每摔一次都要把摔过的损坏度归0的情况下发生的; 要不然一个真实的球让你这么摔最好的结果就是第一层就摔坏了; 要不然你找到的那个临界层肯定要比真实的临界层 要低而且有可能低很多... |
|
返回顶楼 | |
发表时间:2011-10-31
开玩笑吧.如果在2 楼时候就破,你们这样分,能得到记过么?还有, 小玻璃球, 在第二层必须破.
|
|
返回顶楼 | |
发表时间:2011-10-31
我觉得这就是个脑筋急转弯,你们说的都有理,但是都不是人家想要的.
|
|
返回顶楼 | |
发表时间:2011-10-31
摔两次不会裂啊!! 程序员思维!
|
|
返回顶楼 | |
发表时间:2011-10-31
zhanghh321 写道 我觉得7次就可以了呀。。50 25 13 6 3 2 1 (1层是最坏的情况)
弄反了吧,应该从低往上便利,如果是我的话,第一次我会从25层开始试!! 一定要注意,一共就有两个玻璃球!! |
|
返回顶楼 | |