繁体   English   中英

如何使用展开方法求解这个递归方程 T(n) = T(n-1)+n^2?

[英]How do I solve this recurrence equation T(n) = T(n-1)+n^2 using the unfolding method?

我尝试解决这个方程:

T(n) = T(n-1) + n^2 对于 n>1

T(1) = 1 对于 n=1初始值

知道: ^2 的 i=0 和 i=n-1 之间的 Σ = (+1)(2+1)/6

我进行如下:

T(n-1) = T(n-2) + (n-1)^2

T(n-2) = T(n-3) + (n-2)^2

T(n-3) = T(n-4) + (n-3)^2 ecc...

T(n) = T(n-4) + (n-3)^2 + (n-2)^2 + (n-1)^2 + n^2

T(n) = T(1) +... + (n-2)^2 + (n-1)^2 + n^2 = = 1 + Σ(ni)^2 = 1 + Σ(n^ 2 - 2in +i^2) = i 介于 0 和 n-1 之间

= 1 + n^2 - 2nΣi + Σi^2 = =~ 1 + n^2 - 2n*(n-(n-1)+n-(n-2)+...+n-2+n- 1) + n(n+1)(2n-1)/6

在最后一段中,我用给定的 Σ 改变了...

T(n) =~ 1 + n^2 - 2n(an-b) + (2n^3 + 3n^2 + n)/6 =~ O(n^3)

基本上我忽略了n的所有微不足道的权力,但我不确定这是否是合法的事情......

当您知道Σ i^2 for i=0 to i=n-1等于(+1)(2+1)/6时,您可以 state 大 O 项的时间复杂度为O(n^3)

由于(+1)(2+1)/6 = (2^3+n^2+2^2+n)/6 ,您删除了所有常数和n的低幂(是的,这在大 O 计算中是合法的对于非常大的数字,与最高功率变量产生的值相比,它们的值可以忽略不计),并得到O(n^3)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM