【问题标题】:Algorithm Proofs算法证明
【发布时间】:2016-01-19 02:31:24
【问题描述】:

在这种情况下,f(n)、g(n) 和 h(n) 是渐近正函数,这意味着存在一个满足 f(n)/g(n)/h(n) 的 N > 0,对于所有 n >= N。鉴于:

f(n) = Θ(g(n))
g(n) = Θ(h(n))

我需要证明

f(n=Θ(h(n))).

建议使用 Θ 的正式定义,即如果 f(n) = Θ (g(n)) 表示存在正常数 c1、c2 和 k,使得 0 ≤ c1g(n)对于所有 n ≥ k,≤ f(n) ≤ c2g(n)。对于函数 f,c1、c2 和 k 的值必须是固定的,并且不能依赖于 n。我发现了与此类似的示例,但仍不确定如何解决此问题。谁能指出我正确的方向?

编辑: 我目前的猜测是尝试使用传递属性,它表明如果 a=b 和 b=c 则 a=c。我不确定这是否完全正确,但这是我目前最好的猜测。 f(n=Θ(h(n))) 的语法最让我困惑。我不完全确定如何解释它。

【问题讨论】:

  • 正如我之前提到的,我不确定从哪里开始。我不是在寻找一个完整的解决方案,只是朝着正确的方向迈出一步。
  • f(n=Θ(h(n))) 似乎是一个错字(在作业中?)。我怀疑那是f(n) = Θ(h(n))

标签: algorithm proof big-theta


【解决方案1】:

假设 f(n=Θ(h(n))) 与 f(n) = O(h(n)) 相同,则使用 Big 0 定义,即:

f = O(g) iff exist c, n0 > 0 such that forall n >= n0 then 0 <= f(n) <= cg(n)
g = O(h) iff exist k, n1 > 0 such that forall n >= n1 then 0 <= g(n) <= kh(n)

那么我可以将最后一个不等式除以

c: 0 <= f(n)/c <= g(n)

并将 g(n) 替换为

0 <= f(n)/c <= kh(n)

然后将所有乘以c,得到我们

0 <= f(n) <= kch(n)

等价于 f=O(h)。所以

f = O(h) iff exist j, n2 > 0 such that forall n >= n2 then 0 <= f(n) <= jh(n)

【讨论】:

  • Theta 是一个紧界,而不仅仅是一个上限。即f = O(g) iff exist c1, c2, n0 &gt; 0 such that forall n &gt;= n0 then c1 g(n) &lt;= f(n) &lt;= c2 g(n)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
相关资源
最近更新 更多