主定理 - 第二种情况

Posted

技术标签:

【中文标题】主定理 - 第二种情况【英文标题】:Master theorem - second case issue 【发布时间】:2013-09-10 18:08:27 【问题描述】:

给定以下递归方程:

T(n) = 5T(n/5)+(5sin^5(5n^5)+5)*n
T(n) = T(n/4)+2sin^2(n^4)

我很容易看出这两个方程都符合主定理的第二种情况,

但由于 sin 是一个循环函数,似乎足够大的 N 可能会使它真正接近于零。 因此,我们将始终能够为两个常数 c1,c2 找到 N > N0(根据 theta 定义) 这将不赞成它..

用主定理真的可以解决吗?

谢谢

【问题讨论】:

【参考方案1】:

我认为你是对的,主定理不适用于这里。原因是f(n)n^(log_b(a)) 之间的差必须是多项式的。 (见Master Theorem Recurrences: What is exactly polynomial difference?)

在您的情况下: ((5sin^5(5n^5)+5)*n)/(n^(log_5(5)))=(5sin^5(5n^5)+5(2sin^2(n^4))/(n^(log_4(1)))= 2sin^2(n^4),不是多项式,所以主定理在这种情况下无效。

【讨论】:

以上是关于主定理 - 第二种情况的主要内容,如果未能解决你的问题,请参考以下文章

关于主定理的几点注记

如果基本情况不是在恒定运行时而是在多项式运行时运行,主定理是不是适用?

理解适用于主定理的 lambda

算法与程序设计:主定理

d=log_b(a) 情况的主定理解

主定理复习