锁定老帖子 主题:百度二面智力题(破碎临界层)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-10-28
yeshaoting 写道 yawei 写道 简单的二分查找而已。
简单二分貌似得不到14次吧.至少得先分下块呀. 简单二分最坏50次,分块后再二分19次. 上块的第一层没破 ,本块的第一层破了,有可能是上块的第二层是临界点也可能本块的第一层就是临界点,你还是没办法判断出具体的临界点 |
|
返回顶楼 | |
发表时间:2011-10-28
ansjsun 写道 弱弱的问一句..总共就两个都摔碎了...怎么二分
1.摔碎一个还有一个 2.对于只有2层作为选择,两个都摔碎了,那么答案不是显而易见吗。 我目前感觉javaeye上的人很神秘: 1.感觉很笨。 2.感觉很聪明。 不知道那个方面是装的。 |
|
返回顶楼 | |
发表时间:2011-10-28
先分块,块先大后小,最后一块可以考虑二分
|
|
返回顶楼 | |
发表时间:2011-10-28
在最坏的情况下 最快是8+9次 如果第一个球每层10曾试 如果临界是89层 那么此时是最坏的 因为如果99层 是9+5 后面5是由于有两个球都好的 我可以两层两层的试 如果在最坏的情况下能找出比17次更快的 我就佩服你了
|
|
返回顶楼 | |
发表时间:2011-10-28
早晨睡醒不想起床,想起这道题,突然有了思路,发上来大家一起探讨,如下:
1.将楼层分割为X段,第二个球最多丢100/X次,就能找到临界层,这样就有,X*Y=100.现在的问题就转化为怎样求出这个X+Y的最小值。 2.我假设X+Y的最小值为Z。则有X+Y=Z.套用1的函数,则有X+100/X=Z. 现在大家应该懂了我的意思了吧,其实就是求Y=100/X和X^2-ZX+100=0两个曲线的交点问题了 |
|
返回顶楼 | |
发表时间:2011-10-28
phk070832 写道 ansjsun 写道 弱弱的问一句..总共就两个都摔碎了...怎么二分
1.摔碎一个还有一个 2.对于只有2层作为选择,两个都摔碎了,那么答案不是显而易见吗。 我目前感觉javaeye上的人很神秘: 1.感觉很笨。 2.感觉很聪明。 不知道那个方面是装的。 我看了这个解释以后还是没有明白啊 假如在50层碎了,然后应该是去25层啊,如果再碎了呢。 那就没有球了啊 怎么在继续下去啊 |
|
返回顶楼 | |
发表时间:2011-10-28
sum=i+(100/i)
i代表分多少层, 当i为什么值的这个等式的结果最小,这个结果也就是按i分法的最坏结果, 当i=10得出最小值20次 |
|
返回顶楼 | |
发表时间:2011-10-28
ku_sunny 写道 在最坏的情况下 最快是8+9次 如果第一个球每层10曾试 如果临界是89层 那么此时是最坏的 因为如果99层 是9+5 后面5是由于有两个球都好的 我可以两层两层的试 如果在最坏的情况下能找出比17次更快的 我就佩服你了
89是最坏结果 你是在第九次才能测试出89层是临界点 应该是18次把 |
|
返回顶楼 | |
发表时间:2011-10-28
zhanghh321 写道
phk070832 写道
ansjsun 写道
弱弱的问一句..总共就两个都摔碎了...怎么二分
1.摔碎一个还有一个 2.对于只有2层作为选择,两个都摔碎了,那么答案不是显而易见吗。 我目前感觉javaeye上的人很神秘: 1.感觉很笨。 2.感觉很聪明。 不知道那个方面是装的。 我看了这个解释以后还是没有明白啊 假如在50层碎了,然后应该是去25层啊,如果再碎了呢。 那就没有球了啊 怎么在继续下去啊 应该不是要求一次就找到。题目的意思是一次丢两个。怎样才能用最少的次数找出。
|
|
返回顶楼 | |
发表时间:2011-10-28
zha_zi 写道
ku_sunny 写道
在最坏的情况下 最快是8+9次 如果第一个球每层10曾试 如果临界是89层 那么此时是最坏的 因为如果99层 是9+5 后面5是由于有两个球都好的 我可以两层两层的试 如果在最坏的情况下能找出比17次更快的 我就佩服你了
89是最坏结果 你是在第九次才能测试出89层是临界点 应该是18次把
min[maxtimes] = (x-1)+(n/x-1);其中n为楼层数。
|
|
返回顶楼 | |