渐近增长:了解f(n)+一点o(f(n))= theta(f(n))的具体证明吗?

时间:2018-09-11 12:53:30

标签: algorithm performance time big-o asymptotic-complexity

我正在研究f(n) + o(f(n)) = theta (f(n))的证明,并且在证明中有一部分难以理解。

我们将f(n)g(n)设为渐近正函数,并假设g(n) = O(f(n))。 在证明中,它指出,由于我们知道所有f(n) + g(n) ≥ f(n)的{​​{1}},因此可以得出n的结论。 我们也可以类似地得出f(n) + g(n) = Omega((f(n))的结论。因此,f(n) + g(n) ≤ 2 f(n)。 我无法理解为什么f(n) + g(n) = O(f(n))f(n) + g(n) = Omega((f(n))是真实的情况。当我们向f(n) + g(n) = O(f(n))添加g(n)时,如何证明严格的下限是特定的?我们从f(n)的值中得出的结论到底是什么?

1 个答案:

答案 0 :(得分:0)

证明f(n)theta(g(n))的一种方法是证明两个单独的语句:f(n)omega(g(n)),而f(n)是{{1} }。很明显,从这些符号的定义来看,这种证明方式是正确的。

在这个确切的问题中,如果我们选择某个常数O(g(n))等于c,那么对于每个1,我们都会有那个n,这样,根据定义,表明f(n) + g(n) >= c * f(n)f(n) + g(n)。此外,对于Omega(f(n))部分,如果在这种情况下我们选择常数O(f(n))c,则需要证明存在2使得{{1 }},每个n0,都等于f(n) + g(n) <= c * f(n),每个n > n0,都等于问题陈述中对g(n) <= f(n)的定义。

希望这会有所帮助。