通过主定理找到递归方程的闭端公式

Posted

技术标签:

【中文标题】通过主定理找到递归方程的闭端公式【英文标题】:Find Closed End Formula for Recurrence equation by master theorem 【发布时间】:2012-09-25 10:12:52 【问题描述】:

我们能解决这个问题吗 T(n) = 2T( n/2 ) + n lg n 递归方程主定理 我来自一个链接,他说我们不能在这里应用主定理,因为它不满足任何 3ree 情况条件。另一方面,他又举了一个例子 T(n) = 27T(n/3) + Θ(n^3 lg n) 并找到封闭的解决方案 theta(n^3logn) 为了解决这个问题,他使用了主定理的第二种情况 If f(n) = Θ(nlogba (lg n)k ) then T(n) ∈ Θ(nlogba (lg n)k+1) for some k >= 0 我的困惑是为什么我们不能在这里应用第二种情况,而它完全适合第二种情况。 我的想法: a = 2 , b =2;让 k =1 然后 f(n) = theta(n^log_2 2 logn) for k= 1 so T(n) = theta(nlogn) 但是正如上面提到的我们不能应用主定理我很困惑为什么不呢。

注意:这是由于 T(n) = 2T( n/2 ) + n lg n f(n) = nlog nT(n) = 27T(n/3) + Θ(n^3 lg n) 中的 f(n) bcz *f(n) = theta(n^3log n)* 如有错误请指正。

【问题讨论】:

对不起,我忘了这里是链接homepages.ius.edu/rwisman/C455/html/notes/Chapter4/… 【参考方案1】:

使用主定理的案例 2,我发现

 T(n) = Theta( n log^2 (n))

您的链接表明 theroem 的案例 2 是:

 f(n) = Theta( n log_b(a))

虽然来自其他几个链接,例如 one from mit,但情况是:

 f(n) = Theta( n log_b(a) log_k(n)) for k >= 0 

【讨论】:

实际上对于情况(2),他假设 k = 0 后来他在同一链接中提到解决 T(n) = 27T(n/3) + Θ(n^3 lg n) 这个方程 在此页面的顶部,他使用了我提供的相同链接。查一下,有解决办法

以上是关于通过主定理找到递归方程的闭端公式的主要内容,如果未能解决你的问题,请参考以下文章

主定理和递归

数论Sumdiv(整数的唯一分解定理+约束和公式+递归求等比)

中国数学剩余定理

改变世界的17个数学公式

算法复杂度,求解递归方程

扩展欧几里德定理