如何评估涉及渐近符号的下面的表达式?

时间:2015-12-31 02:14:34

标签: algorithm asymptotic-complexity

如果

f(n)=ϴ(n),g(n)=ϴ(n) 

h(n)=Ω(n) 

然后如何评估f(n)g(n)+h(n)

我接近f(n)g(n)=ϴ(n^2),现在是Ω(n)+ϴ(n^2)。根据我的说法,这个表达式的下限应该是Ω(n),上限应该是O(n^2),但是这个表达式应该是最紧密的约束?

1 个答案:

答案 0 :(得分:1)

对于某些常量k1, k2, l1, l2 and m > 0,我们有:

f(n) is ϴ(n)

    => k1*n < f(n) < k2*n, for n sufficiently large

g(n) is ϴ(n)

    => l1*n < g(n) < g2*n, for n sufficiently large

h(n) is Ω(n)

    => m*n < h(n), for n sufficiently large

然后,f(n)*h(n)

for f(n) * h(n): 

    k1*l1*n^2 < f(n)*g(n) < k2*l2*n^2, for n sufficiently large

所以我们可以写p(n) = f(n)*g(n)并使用常量c1=k1*l1c2=k2*l2,我们有:

p(n) (= f(n)*g(n)) is in ϴ(n^2), since

    c1*n^2 < p(n) < c2*n^2

然后,最后,p(n) + h(n)有什么复杂性?我们有:

c1*n^2 + m*n < p(n) + h(n), for n sufficiently large

由于我们从未得到h(n)的上限,我们无法真正说出有关p(n) + h(n)上限的任何内容。这是必要的:h(n) in Ω(n)仅表示h(n)的增长速度至少与n(线性)一样快,但我们不知道这是否是一个紧张的下限。对于指数时间函数,它可能是一个非常草率的下界。

随后,我们只能陈述关于下限的内容:

p(n) + h(n) = f(n)*g(n) + h(n) is in Ω(n^2)

即,f(n)*g(n) + h(n)至少增长为n^2(即Ω(n^2))渐近。

关于您的方法的说明:您是f(n)g(n) is in ϴ(n^2)的正确(如上所示),但请注意,这意味着f(n)g(n) + h(n)的紧密下限永远不会小于k*n^2 }:ie,f(n)g(n) + h(n) in Ω(n^2)是给定的,并且比你的建议更好(更强)的下界; Ω(n)。回想一下,增长最快的术语主导着渐近行为。

供参考,参见例如