f(x) = O(g(x)) 表示f(x) 增长较慢或与g(x) 相当。
从技术上讲,这被解释为“我们可以找到一个 x 值 x_0 和一个比例因子 M,因此 f(x) 的大小超过 x_0 小于g(x)。”或数学:
|f(x)| < M |g(x)| for all x > x_0.
所以对于你的问题:
log(x)^k = O(x)? 正在询问:是否存在 x_0 和 M 使得
log(x)^k < M x for all x>x_0.
这种M 和x_0 的存在可以使用各种极限结果来完成,并且使用L'Hopitals 规则相对简单.. 但是它可以在没有微积分的情况下完成。
我能想出的不依赖 L'Hopitals 规则的最简单证明使用泰勒级数
e^z = 1 + z + z^2/2 + ... = sum z^m / m!
使用z = (N! x)^(1/N)我们可以看到
e^(x^(1/N)) = 1 + (N! x)^(1/N) + (N! x)^(2/N)/2 + ... (N! x)^(N/N)/N! + ...
对于 x>0,所有项都是正数,所以只保留我们得到的第 N 个项
e^((N! x)^(1/N)) = N! x / N! + (...)
= x + (...)
> x for x > 0
取两边的对数(因为log是单调递增的),然后升到N次方(也是从N>0单调递增的)
(N! x)^(1/N) > log x for x > 0
N! x > (log x)^n for x > 0
这正是我们需要的结果,(log x)^N < M x 用于一些 M 和所有 x > x_0,M = N! 和 x_0=0