This topic has been archived. It cannot be replied.
-
工作学习 / 专业技术讨论 / 再来一个面试题有一个N层的货架,你需要知道特定包裹在该货架上的最大'安全高度,即从M(1<=M<=N)层摔下,包裹不会摔坏。
给你一个试验包裹,如何以最快的方式找到M?
----别想太多,唯一的方法就是从一层开始,一层层往上试。直到M+1层包裹摔坏为止。
如果给你两个试验包裹,如何以最快的方式找到M?
---给出你的解答!
-xxjjs(东方射日);
2007-2-26
{306}
(#3520582@0)
-
把鸡蛋换成包裹了,呵呵
-ice(GoGo);
2007-2-26
(#3520589@0)
-
M = sqrt( N ).
-canadiantire(轮胎-pax et lux);
2007-2-26
(#3520740@0)
-
in math language: cond1: x*y+m=N (m=mod(N, y), 0<=m<y), cond2: z=x+y+m, cond3: min(z). 求y... =>dz/dy=0.. 具体公式忘了...
-acadia(acadia);
2007-2-26
(#3520764@0)
-
答案第一个包裹取步长为s向上试,直到摔坏为止,试验次数为 :
t1 = |(M-1)/S|+1
第二个包裹在第一个包裹确定的区域内一层层向上试,直到摔坏为止,则最后一次没有摔坏的那层就是M。共试验:
t2 = M-|(M-1)/S|*S
假设每层包裹摔坏的机会相当,最优解就是使以下值最小的S值:
SGM=Sigema 求和
SGM(M=1,N)[t1 + t2 ]
解上式 得S=???
-xxjjs(东方射日);
2007-2-26
{319}
(#3520772@0)
-
我只做到这一步,至于求和和算(d/ds)我也不会,:(( 还好,对方说"Good enough"
-xxjjs(东方射日);
2007-2-26
(#3520794@0)
-
进一步想想,大家都是想找出试验第一个包裹使平均最优的步长,如果采用变化步长,是否有更优的结果呢?
-xxjjs(东方射日);
2007-2-27
(#3522618@0)
-
折半查找
-digitworm(digitworm);
2007-2-27
(#3524396@0)
-
看看高人的解答
-xxjjs(东方射日);
2007-3-3
{152}
(#3530879@0)