【问题标题】:Can I use master's theorem for this recurrence relation?我可以将大师定理用于这种递归关系吗?
【发布时间】:2012-09-24 02:38:43
【问题描述】:

我解决了我的作业问题,我使用了递归树。

但是解说这个递归关系可以用大师定理来解决!

T(N) = 49T(N/25) + n^(3/2)log(n)

我解决了 n^(3/2) log^2(n)

但解决方案说 n^(3/2) log(n)

我不知道为什么这个案例可以使用大师定理并且是正确的。

【问题讨论】:

  • 嘿伙计,如果你还在 SO,你能告诉我你在哪里遇到了这个问题及其解决方案,我在 Papadimitriou 遇到了问题,但我没有解决方案手册。

标签: algorithm analysis


【解决方案1】:

我们可以看到a=49b=25。请注意log_b(a) ~ 1.23/2 = 1.5。因此,log_b(a) < 3/2。因此,我们可以看到 f(n) = n^{3/2}log(n) = Omega(n^{log_b(a) + epsilon}) 表示某个 epsilon,因此主定理的情况 3 适用。因此,运行时间是

T(n) = Theta(f(n)) = n^{3/2}log(n)

注意:您还必须检查一下

af(n/b) <= cf(n)

对于一些常量c。当然

49 (n/25)^{3/2} log(n/25) <= c n^{3/2}log(n)

可以通过将两边除以n^{3/2}然后从两边减去c log(n)得到

(49/25^{3/2} - c) log n - 49/25^{3/2} log(25) <= 0

至少对于c &gt; 49/25^{3/2} 来说肯定是正确的(没必要这么严格)。

【讨论】:

  • 是否保证 c49/125?
  • 请注意49/25^{3/2} = 49/125 = 0.392 &lt; 1,因此,例如,c = 0.4 是常量c &lt; 1 的示例,因此条件成立。
猜你喜欢
  • 2021-07-27
  • 2020-10-11
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 2022-06-29
  • 2011-09-13
相关资源
最近更新 更多