算法证明

时间:2016-01-19 02:31:25

标签: algorithm proof big-theta

在这种情况下,f(n),g(n)和h(n)是渐近正函数,这意味着存在N,使得f(n)/ g(n)/ h(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)))的语法让我最困惑。我不完全确定如何解释它。

1 个答案:

答案 0 :(得分: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)