大师定理:为什么T(n)= 16T(n / 4)+ n!认为Θ(n!)

时间:2018-12-23 05:50:04

标签: master-theorem

我在尝试理解原因时遇到了问题

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

被认为

Θ(n!)

我正在从下面使用以下主定理:

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

enter image description here

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

1 个答案:

答案 0 :(得分:0)

CLRS定理:

Master theorem

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

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

现在,n!肯定大于n^(2-e)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值也是如此。因此,根据定理的复杂度应为bigtheta(n!)