主方法 - 为什么它不能解决T(n)= T(n / 2)+ n ^ 2 / logn?

时间:2012-05-20 18:30:37

标签: algorithm master-theorem

主方法 - 为什么它不能解决T(n)= 4 * T(n / 2)+(n ^ 2)/ logn?

我意识到它可以解决T(n)= aT(n / b)+ f(n)

类型的重现

在麻省理工学院开放式课程中,他们提到它无法解决上述问题。有人可以解释为什么吗?

4 个答案:

答案 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))。 这里的函数不满足规律性条件,所以主方法失败了