玻璃球问题

来源:互联网 发布:seo兼职优化 编辑:程序博客网 时间:2024/06/03 02:06

      有一种玻璃球,现在要测试它的临界碎点,也就是从m层楼上扔下会摔碎,m-1层楼不碎
现有100层楼,给你2个一样的玻璃球,问至少试几次找到临界碎点?

      我的办法是第一次14层,第二次再加13层,第三次再加12层 。。。。5,4,1

最坏的情况是14次。

 

设第一次取的层次为a(1),第二次a(2)。。。。a(n),使得a(1)+a(2)+。。。+a(n) = m;假设b(n)为在第n层摔碎后还需要多少次才能确认临界值,那么b(n) = n + (a(n) -  1);对于这样的b,总共有n个,我们要尽量保持他们的最大值最小,那什么时候最小呢,由于b(1) +b(2)+。。b(n) = (1 +

2+。。+n)+((a(1)+a(2)+。。+a(n)) - n)是稳定的,所以当b(1) = b(2) = 。。。=b(n)时,他们的最大值最小,所以b(n) = b(n-1),所以 n + (a(n) -  1)= n - 1 + (a(n - 1) -  1)。得到a(n - 1) = a(n) + 1;

设第一个数为k,层次的取法为k, k - 1。。。3,2,1。则k + k -1 +。。。+2 +1>=m,解得 k=(根号(8*m - 4) + 1)/2.

 

当球数k为3个时

(k+1)k/2 + k(k-1)/2+...+1 >=m

2n^3+3n^2+n-6m>=0

明显是次数n是层次m的3次方程式。

很容易可以证明是次数n是层次m的k次方程式。

 

 

原创粉丝点击