【问题标题】:Proving Algorithms with Logarithms用对数证明算法
【发布时间】:2014-01-18 05:13:06
【问题描述】:

我知道如何证明算法,但我不确定如何证明指数和对数:

例如: Given f(n) = 1.05^n and g(n) = n^2, determine if f(n)=O(g(n))

例如:Given f(n) = (log-base4 of n) and g(n) = (log-base2 of n), determine if f(n)=bigTheta(g(n))

例如:Given f(n) = 4^n, and g(n) = 2^n, determine if f(n)=O(g(n)).

我不是在寻找解决方案(不过我不介意一个详细的示例),而是对如何解决这类问题的解释。我上面提到的那些是我遇到的一些不同的,我很困惑。

【问题讨论】:

  • 我发现大多数此类问题都可以通过归纳来解决,您可以在其中证明一个微不足道的情况(n = 1);假设所有 n 到 x 都为真;然后通过重新排列术语来证明 x+1,以便得到 n 案例和基本案例。
  • 我正在寻找另一种更直接的证明方式。 (如求解c1、c2、n0)

标签: algorithm big-o analysis logarithm


【解决方案1】:

渐近地,n! >> aⁿ >> nᵃ >> nlogn >> n >> logn >> a(常数)。
因此,如果 f=1.5ⁿ=aⁿ 和 g=n²=nᵃ,您可以看到 f >> g 对于足够大的 n 值。
所以,g=O(f) 和 f=Ω(g),渐近。

同样,f=log₂n >> g=log₄n,所以 f=Ω(g)。

还有 4ⁿ >> 2ⁿ。因此,如果 f=4ⁿ 且 g=2ⁿ,则 f=Ω(g)。

【讨论】:

  • 这不是 OP 寻求的证明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 2021-01-09
相关资源
最近更新 更多