【问题标题】:Asymptotic analysis of a recurrence relation递推关系的渐近分析
【发布时间】:2016-10-28 09:54:37
【问题描述】:

我有一个对未知算法的运行时间进行建模的递归关系,我需要找到该算法运行时间的下限,或者同时找到上限和下限。

请原谅粗略的格式化; Latex-to-image 解析器我奇怪地使用了数字方程:每个方程的数字在数字所指标记的下方和左侧

等式(1)和(2)是递归关系的一部分。

要从等式 (2) 到 (3),写出递归的几次迭代并观察形成的模式 - 然后使用新变量 k 对其进行概括。

请注意,当等式 (4) 为真时,递归停止。

将式(4)代入式(3)得到式(5)。另外,使用对数换底公式来获得所有以二为底的对数。

从等式 (5) 到等式 (6),我尝试从 Big-oh 分析的角度对等式 (5) 进行一些观察。但坦率地说,这最后一步只是我的猜测。

假设方程 (5),我将如何表达方程 (5) 的 theta、omega 或 oh,以及——最重要的是——如何证明它? p>

我的想法是——我们有兴趣了解等式 (5) 的行为,因为 n 变得非常非常大。但是等式(5)在 n 接近无穷大时的极限涉及负数的对数,这是一个死胡同,而且可能是错误的。

感谢任何帮助。

【问题讨论】:

标签: math big-o asymptotic-complexity


【解决方案1】:

从指数到对数的转换是错误的。肯定存在一些 k 使得

(10/9)^k <= n <= (10/9)^(k+1).

应用二元对数

k*log2(10/9) <= log2(n) <= (k+1)*log2(10/9)

可以转换为 k 的边界

log2(n)/log2(10/9) - 1 <= k <= log2(n)/log2(10/9)

然后导致

T(n) around T(1)+c*log2(n)/log2(10/9)

它仍然以 log2(n) 的倍数为上下渐近界限,但修正后的公式“略有”不同。

【讨论】:

  • 谢谢!我有两个问题:(1)我不熟悉二元对数;你有任何介绍它们的资源的链接吗? (2) 分数应该是 9/10 还是 10/9?感谢您的耐心等待。
  • 啊,等等。我明白了问题(2):(10/9)^k * (9/10)^k n = 1 * (10/9)^k
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-04
  • 1970-01-01
  • 2018-11-03
相关资源
最近更新 更多