“ln ln n / ln 2 + O(1)”中的O(1)是什么意思?

时间:2013-05-08 16:40:01

标签: math big-o theory

我很难理解这个公式中的O(1)符号,它代表一个常数吗?为什么人们会使用像这样的大O符号?

formula

此公式来自论文"Balanced Allocations" by Azar et al.,此公式用于摘要:

abstract

2 个答案:

答案 0 :(得分:4)

这里,术语O(1)表示“某个术语是O(1)”,意味着当n到无穷大时,某些术语从上面以某个常数为界。例如,它可能是137,或sin n,或1 / n 2 。因此,所描述的值可能是ln ln n / ln 2 + 137,或者ln ln n / ln 2 + sin n等。

在讨论公式中的低阶项时,这种大O符号的使用在形式数学中是常见的,该公式对总体总量贡献很小。作者本可以写出整个表达式是O(ln ln n),但这不如ln ln n / ln 2 + O(1)那么精确,因为它模糊了ln ln n上的系数为1的事实。 / ln 2并且唯一的低阶增长项从上面以常数为界。通过明确写出“+ O(1)”,作者能够提供更好的精度。

希望这有帮助!

答案 1 :(得分:0)

是的,O(1)表示不变。未指定常量的确切值,但对于给定的表达式可能并不重要。这些概念通常用作计算中的中间步骤,它会删除不重要细节的计算。

按如下方式读取此表达式:执行需要lnlnn/ln2时间并添加一些常量。将此结果汇总为O(lnlnn)。用精确表达式替换O(1)不会改变此结果,因此可以使用O(1)形式的近似值。