且看题:
有100层楼,已知从某层扔下玻璃球会碎,给你两个玻璃球,请用最优策略实验出临界的破碎楼层
注意题,是给出最优实验策略,我们可不能拿一个小球从一层开始扔,然后一层一层往上加,这样的话最坏的情况下会扔99次(因为99层不管碎没碎,我们都知道结果了),而且还浪费了一个球。
那既然有两个球,可不可以用简单的折半法呢,比如50层扔一个,没碎的话,用另一个球从51层往上扔,最坏的情况下是1+49=50次,如果碎了的话,我们再折半,从25层扔另一个球,嗯,又碎了,然后呢,然后没球了(┬_┬)
可见以上两种扔法都不能解出此题,但仔细想想,以上两种扔法都有一个共同点,也是解此题的关键,即:两次扔球的区间间隔
!第一种扔法看似么有区间,其实可以看作区间为0,第二种区间为50,此题求最优策略(注意不是最少),可以理解为无论临界楼层是几层,这种策略的最多扔球次数都是一样的,那么我们的扔球区间该怎么选呢?
假设我们第一次扔球从第n层扔:
- 如果碎了,那么第二颗球就应该从第一层往上扔,最坏次数为
1 +(n - 2)- 1 + 1 = n - 1
次,解释一下,即:第一次扔球次数 1加上本次实验最高层减去最底层并加1,n - 2层是最后一次实验的楼层,因为已知n层碎了,当