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

if f(n) = o(g(n)), does g(n) + f(n)=Θ(g(n))?

如果我设法证明 f(n) = o(g(n))(小 o),那么两个函数之和 f(n) + g(n) 应该被 "bigger" 函数紧紧地束缚似乎很合理g(n).

然而,我很难证明这一点。

以下推理显示了渐近恒等式 (Theta) 意义上的 'tight bound':

    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
 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)|

这很容易。

如果 f(n) = o(g(n)),那么严格来说我们有 kn > k|f(n)| < 0.5 * |g(n)|(根据 little-O 的定义)。

因此 0.5 * |g(n)| < |f(n) + g(n)| < 1.5 * |g(n)| = Θ(g(n))n > k

QED.

如果f(n)g(n)都是正定的,那么就不需要强small-o条件。但是,如果不是,则需要强条件,否则 f(n) 可能会完全取消 g(n)。 (例如 f(n) = -g(n)