Skip to content

3.2 函数的增长

\(\mathcal{O}\) 记号

定义

通俗地说,大 \(\mathcal{O}\) 记号是一种数学符号,用于描述函数在变量趋近于某个特定值或无穷大时的极限行为。

\(f\)\(g\) 为从整数集或实数集到实数集的函数。如果存在常数 \(C\)\(k\) 使得只要当 \(x > k\) 时就有
$$ |f(x)| \leqslant C|g(x)| $$
我们就说 \(f(x)\)\(O(g(x))\) 的。【这个可以读作“\(f(x)\) 是大 \(Og(x)\) 的”。】

  • 如果\(f(x)\)\(O(g(x))\)的,且\(g(x)\)\(O(f(x))\)的,那么\(f(x)\)\(g(x)\)具有相同阶数(增长速率)。
  • 传递性

    如果\(f(x)\)\(O(g(x))\)的,且\(g(x)\)\(O(h(x))\)的,那么\(f(x)\)\(O(h(x))\)的。

一些重要函数的大 \(\mathcal{O}\) 估算

  • 复合定理

    假设 \(f(x)\)\(O(g(x))\)\(\lim_{x \to \infty} h(x) = \infty.\)

    那么 \((f \circ h)(x)\)\(O((g \circ h)(x))\).

    示例.\(f(n) = \sum_{i=1}^n i^2\),则 \(f(n)\)\(O(n^3)\).

    \(\sum_{i=1}^{2^n} i^2\)\(O(8^{n})\)

    \(\sum_{i=1}^{2^{2^n}} i^2\)\(O(8^{2^n})\)

  • 多项式定理

    \(f(x) = a_k x^k + a_{k-1} x^{k-1} + \cdots + a_1 x + a_0\),其中 \(a_0, \ldots, a_k \in \mathbb{R}\)\(a_k > 0\)
    那么 \(f(x)\)\(O(x^k)\)\(x^k\)\(O(f(x))\)

    可推论到 离散数列

  • 函数增长率层次结构 $$ 1 < log(n)<n<n log(n) < n^2 < 2^n < n! $$

  • 命题:

    假设 \(f_1(x)\)\(O(g_1(x))\),且 \(f_2(x)\)\(O(g_2(x))\)。则 \((f_1 + f_2)(x)\)\(O(\max(|g_1(x)|, |g_2(x)|))\)

  • 命题:

    假设 \(f_1(x)\)\(O(g_1(x))\),且 \(f_2(x)\)\(O(g_2(x))\)。则 \((f_1 f_2)(x)\)\(O(g_1(x)g_2(x))\)

\(\Omega\)与大\(\Theta\)记号

定义1:

\(f\)\(g\) 为从整数集合或实数集合到实数集合的函数。如果存在正常数 \(C\)\(k\) 使得当 \(x > k\) 时有

\[ |f(x)| \geqslant C|g(x)| \]

我们说 \(f(x)\)\(\Omega(g(x))\) 的(这个读作“\(f(x)\) 是大 \(\Omega g(x)\) 的”)。

定义2:

如果 \(f(x)\)\(O(g(x))\) 的 且 \(f(x)\)\(\Omega(g(x))\)的,则称 \(f(x)\)\(\Theta(g(x))\)的。

如果 \(f(x)\)\(\Theta(g(x))\)的,则我们说 \(f(x)\)\(g(x)\) 的同阶的,或者 \(f(x)\)\(g(x)\) 是同阶的。

\(f(x)\)\(\Theta(g(x))\)的 当且仅当:

  • \(f(x)\)\(O(g(x))\)的 且 \(g(x)\)\(O(f(x))\)的;
  • 存在常数 \(C_1\)\(C_2\)\(x_0 \in \mathbb{R}_+\),使得对于所有 \(x \geq x_0\),有:\(C_1 |g(x)| \leq |f(x)| \leq C_2 |g(x)|\)

案例

  1. \(f(x) = 3x^2 + 8x \log x\)。显然,\(x^2\)\(O(f(x))\)。此外,\(f(x)\)\(O(\max(x^2, x \log x)) = O(x^2)\)。因此,\(f(x)\)\(\Theta(x^2)\)

  2. \(f(x) = a_k x^k + a_{k-1} x^{k-1} + \cdots + a_1 x + a_0\),其中 \(a_0, \ldots, a_k \in \mathbb{R}\)\(a_k > 0\)。则 \(f(x)\)\(\Theta(x^k)\)