有人可以解释为什么f(n)+ o(f(n))= theta(f(n))?

时间:2013-10-02 02:02:49

标签: time-complexity big-o big-theta little-o

根据this page

  

陈述:f(n)+ o(f(n))= theta(f(n))似乎是真的。
  其中:o = little-O,theta = big theta

这对我来说并不直观。我们知道o(f(n))渐近地比f(n)更快地增长。如何,那么它是否可以被f(n)限制为大theta所暗示的?

这是一个反例:

let f(n) = n, o(f(n)) = n^2. 
n + n^2 is NOT in theta(n)

在我看来,先前链接的stackexchange答案中的答案是错误的。具体来说,下面的陈述看起来好像海报混淆了小o和小欧米茄。

由于g(n)是o(f(n)),我们知道对于每个ε> 0,存在n∈,使得| g(n)|<ε| f(n)|只要n≥nε

1 个答案:

答案 0 :(得分:3)

更新:我已经意识到我的问题的答案

我对o(f(n))是什么感到困惑。我认为f(n)= n的o(f(n))例如是f(n)= n ^ 2.

这不正确。 o(f(n))是一个上限为f的函数,而不是渐近紧的f。 例如,如果f(n)= n,则f(n)= 1可能是o(f(n))的成员,但f(n)= n ^ 2不是o(f(n)的成员))。