主方法 - 为什么它不能解决T(n)= 4 * T(n / 2)+(n ^ 2)/ logn?
我意识到它可以解决T(n)= aT(n / b)+ f(n)
类型的重现在麻省理工学院开放式课程中,他们提到它无法解决上述问题。有人可以解释为什么吗?
答案 0 :(得分:2)
回答T(n / 2)+(n ^ 2)/ logn:
Case 1 does not apply because f(n) != O(n^-e) for any positive e.
Case 2 does not apply because f(n) != Θ(log^k(n)) for any k >= 0
Case 3 does not apply,
f(n) = Ω(n^e) for e = 1, BUT
a*f(n/b) <= c*f(n) for no c<1 (works out that c >= 2)
所以我们不能申请任何案件。除此之外,我并不是真的好 - 而且我对这个答案并不是百分之百。
以下是此编辑之前,并假设问题是关于T(n)= T(n / 2)+ n ^(2logn) 我很确定这是理论的第3个案例。
Case 1 does not apply because f(n) != O(n^-e) for any positive e.
Case 2 does not apply because f(n) != Θ(log^k(n)) for any k >= 0
Case 3 does apply,
a*f(n/b) <= c*f(n) for some c<1 (works out that c >= 0.5)
and f(n) = Ω(n^e) for e = 1
我可能错了,所以检查一下,让我知道!
答案 1 :(得分:0)
f(n)=(n ^ 2)/ logn和n ^(log a / log b)。计算上述两个函数之间的差异。
比率=(n ^ 2 / log n)/(n ^ 2)
该比率结果是对数的。这种递归关系属于案例2和案例3之间的差距。因此,Masters定理不适用于这种递归关系。
当上述两个函数之间的差异是多项式时,Masters定理适用。
答案 2 :(得分:0)
因为在所提到的三个案例中,你无法证明正渐近性质。这意味着当n->无穷大n ^ 2 / lg(n) - >无穷大,简单地暗示n ^ e = w(lg(n)),其可以被解释为&#34;该函数不能被包含&#34;分裂和征服程序没有上限。
答案 3 :(得分:0)
似乎是第三种情况,因为f(n)更大但它也应该满足规律性条件(对于(0,1)中的某些c,af(n / b)&lt; = cf(n))。 这里的函数不满足规律性条件,所以主方法失败了