如果f(n)= o(g(n)),g(n)+ f(n)=Θ(g(n))?

时间:2015-03-19 07:52:16

标签: algorithm theory

如果我已经设法证明f(n) = o(g(n))(小o),那么两个函数f(n) + g(n)的总和应该被"更大的"严格约束似乎是合理的。函数g(n)

然而,我在证明它时遇到了一些麻烦。

3 个答案:

答案 0 :(得分:2)

以下推理显示了渐近身份(Theta)意义上的“紧束缚”:

    f = o(g)
<=> lim_n->oo ( f(n)/g(n) ) = 0
 => lim_n->oo ( (f(n)+g(n))/g(n) )
  = lim_n->oo ( f(n)/g(n) ) + lim_n->oo ( g(n)/g(n) )
  =           0             +            1

答案 1 :(得分:0)

 f(n) = o(g(n)) means that |f(n)|<|C*g(n)|
+
 g(n) = Θ(g(n)) means that |C1*g(n)|<=|g(n)|<=|C2*g(n)|
-------------------------------------------------------
 f(n)+g(n) = Θ(g(n))+o(g(n))=Θ(g(n)) because |C1*g(n)|<=|g(n)+f(n)|<|(C+C2)*g(n)|

答案 2 :(得分:0)

这很容易。

如果f(n) = o(g(n)),那么我们k严格地|f(n)| < 0.5 * |g(n)| n > k 0.5 * |g(n)| < |f(n) + g(n)| < 1.5 * |g(n)| = Θ(g(n))(根据little-O的定义)。

因此n > kf(n)

QED。

如果g(n)f(n)都是肯定的,那么你就不需要强大的小o条件。但是,当他们不是时,则需要强大的条件,否则g(n)可能会完全取消f(n) = -g(n)。 (例如{{1}})