用于计算算法复杂度的系列求和

时间:2012-05-04 01:03:32

标签: algorithm math complexity-theory

我有一个算法,我需要计算它的复杂性。我接近答案,但我有一点数学问题:系列的总和公式是什么

½(n 4 + n 3 )其中n的模式为1,2,4,8 ......所以该系列变为:

½(1 4 +1 3 )+½(2 4 +2 3 )+½ (4 4 +4 3 )+ 1/2(8 4 +8 3 )+ ...

4 个答案:

答案 0 :(得分:3)

对于k = 0,1,2 ......

,将n表示为2 ^ k可能会有所帮助

将其替换为原始公式以获得表格的条款(16 ^ k + 8 ^ k)/ 2.

你可以把它分成两个单独的总和(一个是基数16,另一个是基数8), 每个都是几何系列。

S1 = 1/2(16 ^ 0 + 16 ^ 1 + 16 ^ 2 + ...)

S2 = 1/2(8 ^ 0 + 8 ^ 1 + 8 ^ 2 + ...)

几何级数的第J个部分和是(1-r ^ J)/(1-r)其中a是初始值 值和r连续项之间的比率。对于S1,a = 1/2,r = 16。对于S2,a = 1/2, R = 8。

将它乘以它我相信你会发现前J个项的总和是O(16 ^ J)。

答案 1 :(得分:1)

你问的是

来自r = 1的

½Σ((2 r 4 +(2 r 3 )到n

(抱歉这个丑陋的数学;这里没有LaTeX。)

结果是16/15 16 n + 8/7 8 n - 232/105

请参阅http://www.wolframalpha.com/input/?i=sum+%282%5Er%29%5E4%2B%282%5Er%29%5E3+from+r%3D1+to+n

您不需要确切的公式。您需要知道的是,这是一个O(16 n )算法。

答案 2 :(得分:0)

感谢你们所有人......我正在寻找的最终公式(基于你的作品)是:

((1/15 2^(4(log2(n)+1))  +  8^(log2(n)+1)/7  -232/105)/2) + 1

这将得到与运行算法

的程序相同的结果

答案 3 :(得分:-1)

看起来你的系列没有收敛......也就是说,总和是无穷大。也许你的公式错了,或者你问错了。