【问题标题】:Master Theorem: Why is T(n)=16T(n/4)+n! considered Θ(n!)主定理:为什么 T(n)=16T(n/4)+n!考虑 Θ(n!)
【发布时间】:2019-05-22 21:55:39
【问题描述】:

我在试图理解原因时遇到了一些问题

T(n)=16T(n/4)+n!

考虑

Θ(n!)

我在这里使用下面的主定理:

https://www.geeksforgeeks.org/advanced-master-theorem-for-divide-and-conquer-recurrences/

这里令人困惑的部分是我的朋友说答案实际上是 O(n!) 而不是 Θ(n!)...所以我真的很困惑。

【问题讨论】:

  • 如果我没记错的话应该是Thetha(n!)!尝试使用CLRS 的第 94 页中所述的定理 4.1
  • @kiner_shah 这两个主定理有区别吗?
  • 它们看起来不同,虽然我不确定它们是否真的相同,只是有不同的表示

标签: master-theorem


【解决方案1】:

来自 CLRS 的定理:

在你的情况下,a = 16, b = 4, f(n) = n!

让我们计算。那将是n^2

现在,n! 肯定大于n^2,所以我们将使用定理的第三种情况。

c = 0.5。这给出了替换,16 * (n / 4)! <= 0.5 * n!

让我们在n 中输入一个值并检查:

如果n = 100, 16 * (100 / 4)! <= 0.5 * 100! 给出16 * 25! <= 0.5 * 100!。这个不等式是正确的,因为100! 将比25! 大得多。即使与16 相乘也不会使其大于0.5 * 100!

对于n 的其他较大值也是如此。所以根据定理的复杂度应该是

【讨论】:

    猜你喜欢
    • 2015-09-08
    • 1970-01-01
    • 2014-09-18
    • 2015-08-29
    • 1970-01-01
    • 2021-11-03
    • 2011-08-03
    • 2020-06-01
    • 2015-07-14
    相关资源
    最近更新 更多