Answers:
如果需要严格的证明,以下引理通常是有用的。比定义更方便。
如果存在,则
- ,
- 和
- 。
这样,您应该能够订购算法分析¹中出现的大多数功能。做个练习,证明一下!
当然,您必须能够相应地计算限制。将复杂功能分解为基本功能的一些有用技巧:
更笼统地说:如果您有一个凸的,连续可微的和严格增加的函数那么您可以将商重新写为
,
与和
,
然后
。
有关此规则的严格证明,请参见此处(德语)。
考虑您的职能在现实中的延续。您现在可以使用L'Hôpital规则;注意其条件²!
当阶乘弹出时,使用斯特林公式:
保留一次证明并经常使用的基本关系池也很有用,例如:
对数比多项式增长慢,即
对于所有。
多项式的阶数:
对于所有。
多项式的增长比指数慢:
对于所有和。
可能会发生上述引理不适用的情况,因为该限制不存在(例如,函数振荡时)。在这种情况下,请考虑使用上等/劣等石灰对Landau类进行以下表征:
使用我们有
- 和
- 。
使用我们有了
- 和
- 。
此外,
- 和
- 。
¹注意:我的同事编写了一个Mathematica函数,该函数成功地对许多函数执行了此操作,因此引理确实将任务简化为机械计算。
²另请参见此处。
Limit[f[n]/g[n], n -> Infinity]
并执行区分大小写。
提示:使用Wolfram Alpha之类的工具绘制这些函数的图形,以了解它们的增长方式。请注意,这不是很精确,但是如果您尝试使用足够大的数字,则应该看到比较的增长方式。这当然不能代替证明。
例如,尝试:从1到10000绘制log(log(n))以查看单个图形,或者从1到10000 绘制log(log(n))并绘制log(n)以查看比较。
这是Wikipedia的列表,表中的级别越低,复杂度等级越高;
注意: