首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算对数级数的平方和

如何计算对数级数的平方和
EN

Stack Overflow用户
提问于 2013-10-03 03:32:29
回答 1查看 3.4K关注 0票数 7

我有一个算法,并且我已经计算出它的运行时复杂性遵循以下公式:

代码语言:javascript
复制
[log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2

原木底座为2。

如何从这个公式中计算出Θ/Ο算法的复杂性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-08 07:15:37

对于上限,您可以推理为log(n!) = O(nlog(n))

代码语言:javascript
复制
[log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2 < [log(n)]^2 + ... + [log(n)]^2
                                                            = n[log(n)]^2

[log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2  = O( n[log(n)]^2 )

要证明下界,需要证明给定和是nlog(n)^2的>=常数倍数。

从和中删除前半部分的条款

代码语言:javascript
复制
[log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2 >= [log(n/2)]^2 + [log(n/2 + 1)]^2 + [log(3)]^2 + ....... + [log(n)]^2

用log(n/2) ^2替换每个术语

代码语言:javascript
复制
[log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2  >= (n/2) * [log(n/2)]^2

下界= (n/2) * [log(n) - 1] ^ 2

我们可以证明log(n) - 1 >= (1/2) * log(n)

因此,下界= (n/8) * [log(n)] ^ 2和上界= n * [log(n)] ^ 2

所以Θ([log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2) = n * [log(n)] ^ 2

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19150268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档