大 O 表示法 Explanation/Proof

Big-O Notation Explanation/Proof

在确定一个函数是否是另一个函数的大 O 时,我仍然无法理解更复杂的证明,例如(f(n) = O(g(n)).

示例:

F(n) http://upurs.us/image/63058.gif

G(n) http://upurs.us/image/63059.gif

我意识到我们希望在以下条件下满足证明,S.T f(n) <= C1 * g(n) when n > b。我看过无数的教程,无法掌握这个概念。在列出的示例中,我将如何选择常量并使用该信息来完成证明?谢谢。

您所要做的就是考虑 f(n)g(n) 的大项,因为 n 转到 infinity

现在考虑 f(n)

g(n)

现在得出结论:

我认为这个问题实际上有两个部分。首先是确定哪个函数(如果有的话)具有更大的渐近增长。二是证明你的判断是正确的

至于第一部分,我建议只查看序列中功率最高的项。 fg 的阶数都是 2.5 (5n^2 * sqrt (n)6n^2 * sqrt(n)。丢弃系数后,随着 n 趋于无穷大,哪个系数增长得更快?事实证明,删除系数会产生相同的函数(即 n^2 * sqrt(n)),因此函数具有相等的渐近增长。这意味着我们可以证明 f = O(g)g = O(f).

为了证明第一个,我们只需要找到一些 Ck 这样对于所有 n > k, 我们有 C * g(n) > f(n)。我认为最简单的方法之一就是反证法。也就是说,假设对于所有 Ckf(n) > C * g(n) 所有 n > k。然后,在简化表达式后,我们可以只选择较大的 Ck 的值来证明这个假设是错误的。