根n ^ 3函数之和的Θ复杂度是多少?

时间:2013-03-05 10:09:44

标签: algorithm time complexity-theory

函数的复杂度(Θ版本)是什么

<磷>氮
Σ= 3 * i 3/2
I = 1

我认为它只是Θ(n 2 ),因为n 2 比常数或平方根增长得更快,至少这是直觉意义上的我脑海。有没有办法正式证明这一点?

1 个答案:

答案 0 :(得分:1)

让我们考虑更简单的Sum[i=1..n](i^(3/2))

让我们考虑以下积分Integrate[i=(k-0.5)..(k+0.5)](i^(3/2)),其中k是正整数。

  Integrate[i=(k-0.5)..(k+0.5)](i^(3/2))
= 2/5 * ((k+0.5)^(5/2) - (k-0.5)^(5/2))

可以证明对于所有正整数k:

k^(3/2) < 2/5 * ((k+0.5)^(5/2) - (k-0.5)^(5/2))

当我们试图通过平方,扩展和分组来解决直到平方根消失时,我们将得到40*k^6 - 0.024*k^4 + 0.008*k^2 + 0.0001 = 0,这显然没有真正的解决方案。代入0表示RHS> 0。 LHS。

(我不知道是否有更好的方法,但上面是一种证明方法)。

导致:

k^(3/2) < Integrate[i=(k-0.5)..(k+0.5)](i^(3/2))

我们可以从中得出:

Sum[i=1..n](i^(3/2)) < Integrate[i=(0.5)..(n+0.5)](i^(3/2))

表示所有正整数n。

我们知道:

  Integrate[i=(0.5)..(n+0.5)](i^(3/2))
= 2/5 * ((n+0.5)^(5/2) - 0.5^(5/2))

所以:

Sum[i=1..n](i^(3/2)) < 2/5 * ((n+0.5)^(5/2) - 0.5^(5/2))
Sum[i=1..n](i^(3/2)) = O(n^(5/2))

使用上面的相同技巧,让我们考虑整合0.75 * Integrate[i=(k-0.5)..(k+0.5)](i^(3/2)),其中k是一些正整数:

  0.75 * Integrate[i=(k-0.5)..(k+0.5)](i^(3/2))
= 0.75 * 2/5 * ((k+0.5)^(5/2) - (k-0.5)^(5/2))
= 0.3 * ((k+0.5)^(5/2) - (k-0.5)^(5/2))

可以证明对于所有正整数k:

k^(3/2) > 0.3 * ((k+0.5)^(5/2) - (k-0.5)^(5/2))

证明可以按照前面部分所示的类似方式进行。或者你可以通过显示k = 1的单调性和测试来做到这一点,这是域中允许的最小数量。

由此,我们可以到达:

Sum[i=1..n](i^(3/2)) > 0.75 * Integrate[i=(0.5)..(n+0.5)](i^(3/2))

表示所有正整数n。

我们知道:

  Integrate[i=(0.5)..(n+0.5)](i^(3/2))
= 0.3 * ((n+0.5)^(5/2) - 0.5^(5/2))

所以:

Sum[i=1..n](i^(3/2)) > 0.3 * ((n+0.5)^(5/2) - 0.5^(5/2))
Sum[i=1..n](i^(3/2)) = Omega(n^(5/2))

因此,Sum[i=1..n](i^(3/2)) = Theta(n^(5/2))

注意:如果要迁移此帖子,如果证明有问题,请删除此帖子