通过主定理找到递归方程的闭端公式
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 n
和 T(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) 这个方程 在此页面的顶部,他使用了我提供的相同链接。查一下,有解决办法以上是关于通过主定理找到递归方程的闭端公式的主要内容,如果未能解决你的问题,请参考以下文章