论坛首页 综合技术论坛

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

浏览 55401 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-11  
以生活常识来说,所谓的算法都不对的; |  必须先有一个假设:用来首先测试的第一块玻璃球,未破时是无损的;然后使用分块查找来测试;  |  分层不对:如果第一块在50楼碎了,第二块在25层也碎了,就找不到答案了;
0 请登录后投票
   发表时间:2011-11-11  
用降序的等差数列,n+(n-1)+(n-2)+...
当前几项之和超过100时试验成功
当数列加到1,数列和仍小于100时失败
临界值是n=14
0 请登录后投票
   发表时间:2011-11-13  
simplyred 写道
用降序的等差数列,n+(n-1)+(n-2)+...
当前几项之和超过100时试验成功
当数列加到1,数列和仍小于100时失败
临界值是n=14

这个方式不错,更直接点100/10 + 10/2 - 1 (10和2是楼主说的那个分层方法里的)
0 请登录后投票
   发表时间:2011-11-14  
n+(n-1)+(n-2)+... +1<100
是正确答案
也容易理解
但是如果有3个球呢?n个球呢?
n个球会是一个 NP的问题吗?
0 请登录后投票
   发表时间:2011-11-14  
在找着之前,必须保证有一个球没有碎才行,
0 请登录后投票
   发表时间:2011-11-15  
分10块 100/10
10 20 30........
从10开始开始验收 最坏结果一直到100层球才破 证明球的临界在90-100之间
然后开始以2开始分块 最坏结果4次  92 94 96 98
所以最坏结果是14次
0 请登录后投票
   发表时间:2011-11-16  
这么多人以2分块的,一个球破了之后,就必须一层一试,没有捷径。
0 请登录后投票
   发表时间:2011-11-16  
根据生活经验,第一层就碎了。玻璃啊大哥们。
0 请登录后投票
   发表时间:2011-11-16  
设第一个球每间隔x层投一次,最多投100/x次(当前考虑出现小数的情况),根据间隔x找到投下后摔碎的那个层,然后剩下的间隔2层投一次(2,4,6...)这样再投(x-2)/2次。设最少投y次。最后得到方程如下:
100/x + (x -2)/2 = y;(1<=x<=100;且x,y为正整数)
这是一段曲线,找到临界点为间隔20次投放结果为y为14的情况有两种情况,一种间隔20次,一种是间隔10次。

我觉得按照实际情况不能只用二分法来解决,因为两次凑摔碎的时候就找不到临界点,只能找到区间。第一个球摔碎之前可以用二分法找,当投第二球时,我觉得按照间隔为2的投,这样算得次数少。
0 请登录后投票
   发表时间:2011-11-17   最后修改:2011-11-17
其实就是简单的二分查找! 没那么复查
0 请登录后投票
论坛首页 综合技术版

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