Σ从i = 1到n(n)(n + 1)/ 2
给定n的计算上限是多少?是O(n ^ 3)O(n ^ 2)?
示例:
n=1 , sum =1
n=2 , sum= 1+ 1+2 , sum = 4
n=3, sum= 1+1+2+1+2+3, sum = 10
n=4, sum = 1 + 1+2 + 1+2+3 + 1+2+3+4 = 20
n= 5, sum = 1+ 1+2 +1+2+3 +1+2+3+4 + 1+2+3+4+5 , sum = 35
...
n=10, sum = ..... , sum = 220
等,那么这个计算的上限是N的函数?它是:
为O(n ^ 3)?
答案 0 :(得分:4)
我认为你的意思是Σ1≤ i ≤ n i ( i + 1)/ 2,因为Σ1≤ i ≤ n n ( n < / i> + 1)/ 2只是 n ²( n + 1)/ 2,我相信你可以亲眼看到。
无论如何,当你能准确计算总和时,为什么还要忍受渐近增长率呢?
Σ1≤ i ≤ n i ( i + 1) / 2
=½Σ1≤ i ≤ n ( i ²+ i )
=½( n ( n + 1)(2
+ 1)/ 6 + n ( n + 1)/ 2) = n ³/ 6 + n ²/ 2 + n / 3
OEIS将这些数字(1,4,10,20,......)称为“tetrahedral numbers”。
答案 1 :(得分:3)
是O(n ^ 3)。
要确定这是真的,您可以将其视为三角形金字塔。
答案 2 :(得分:2)
我们可以将n(n+1)/2
估算为n^2
。所以我们的总和为1^2 + 2^2 + ... + n^2
,即n(n+1)(2n+1)/6
,可以近似为n^3
。所以上限是n^3
。
答案 3 :(得分:1)
总和的确切公式为1/6*n*(n+1)*(n+2)
,即O(n^3)
。
答案 4 :(得分:0)
是的,在k = 1,2,...,n上求和度d的一些多项式,得到n次为d + 1的多项式。由于 k(k+1) / 2
在k中的度数为2,因此在n中它的和为2 + 1 = 3。
答案 5 :(得分:0)
您是要求以下总和的计算复杂度,还是要求总和的 big-O bound ?
第二个是O(n ^ 3),就像人们已经注意到的那样,但是对于计算总和,你只需要线性的加法和乘法量。您可以重新组合加数并将总和重写为
n*1 + (n-1)*2 + ... + 1*n
显然可以用O(n)计算总和。
哦,Gareth注意到总和有封闭形式的表达式,它在不变的时间内计算。