日志与平方根的大O.

时间:2016-10-11 16:41:30

标签: algorithm math time-complexity big-o logarithm

一般来说,以下总是如此吗?

log(n)= O(n a /(a + 1))? S.T. a 是任何常数正整数,可能非常大。

如果没有, a 的最大值是多少,该语句将保持为真?

3 个答案:

答案 0 :(得分:2)

随着函数的运行,当时,log( n )总是比 n 任何电源 慢。 n 变大。有关证据,请参阅https://math.stackexchange.com/questions/1663818/does-the-logarithm-function-grow-slower-than-any-polynomial

因此,只要 a 是一个常数正整数,它的值是什么并不重要,因为总是可以找到常量 C k ,以便日志( n )&lt; = | C n a < / em> /( a + 1 | + k ,这是big-O的定义。

但是,您也可以直观地理解它: n a /( a + 1 a 变大时,接近 n 。当然,log( n )总是O( n )。

答案 1 :(得分:2)

基本的事实是,由于对数的凹度,它始终低于其正切。所以

log(x) <= log(e) + 1/e * (x-e) = x/e

因此

log(n) = O(n).

现在只需要应用对数定律来查找

log(n) = 1/c * log(n^c) <= 1/(ce) * n^c

,因此log(n)=O(n^c)代表任何积极的C

答案 2 :(得分:0)

如果您的意思是log(n)∈O(n^(a/(a+1)),是的,对于a的所有positiv整数都是如此,因为a/a+1 < 1 => n^(a/(a+1) ∈ O(n)log(n) ∈ O(n) => log(n) ∈ O(n^(a/(a+1))