【问题标题】:Not able to understand a logarithm conversion无法理解对数转换
【发布时间】:2013-09-13 15:36:36
【问题描述】:

我正在浏览一个算法类的幻灯片并遇到以下问题。

T(n) = 2T(n^(1/2)) + lg n

重命名:m = lg n => n = 2^m T (2^m) = 2T(2^(m/2)) + m

重命名:S(m) = T(2^m) S(m) = 2S(m/2) + m

谁能解释一下最后一个方程是怎么来的?我无法理解 S(m/2) 是怎么来的。谢谢。

【问题讨论】:

  • 我花了 1.5 小时才发布这个问题

标签: math time-complexity logarithm recurrence


【解决方案1】:

这只是一个参数替换。

你有S(m) = T(f(m)), where f(m) = 2^m。用 m/2 代替 m,你会得到

S(m/2) = T(f(m/2)), f(m/2) = 2^(m/2)

现在你可以重写左边的部分T(f(m/2)) = T(2^(m/2)) = S(m/2)

【讨论】:

  • 谢谢。这有帮助。这对我来说并不简单,因为他们让我在两个地方都使用 m 感到困惑。
猜你喜欢
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
  • 2022-01-25
  • 2013-07-05
  • 2014-01-15
  • 2015-01-21
  • 1970-01-01
  • 2023-03-29
相关资源
最近更新 更多