一般来说,以下总是如此吗?
log(n)= O(n a /(a + 1))? S.T. a 是任何常数正整数,可能非常大。
如果没有, a 的最大值是多少,该语句将保持为真?
答案 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))