f(n)= n ^ log(n)复杂多项式或指数

时间:2011-05-01 20:50:42

标签: complexity-theory big-o big-theta

我正在尝试确定f(n)=n^(logb(n))是否在Theta(n^k)中,因此会增长多项式或Theta(k^n),因此会呈指数增长。

首先我尝试简化功能: f(n) = n^(logb(n)) = n^(log(n)/log(b)) = n^((1/log(b))*log(n))因为1/log(b)不变,我们得到f(n)=n^log(n)

但现在我被卡住了。我的猜测是f(n)Theta(n^log(n))中呈指数增长,甚至呈超指数增长,因为指数log(n)也在增长。

3 个答案:

答案 0 :(得分:2)

您可以将n^(log(n))写为(k^(logk(n)))^(log(n)) = k^(K*(log(n)^2)).,因为(log(n))^2 < n n足够大,这意味着n^(log(n))的增长速度会慢于k ^ n

答案 1 :(得分:1)

尝试用n替换b^m,这会产生logb(n) = m。这应该让你知道去哪里。

答案 2 :(得分:1)

它似乎不是 theta(指数) theta(多项式);上面的海报显示了为什么它不是指数级的。它不是多项式的原因可以用反例来简单证明。

证明n ^ logn不是O(n ^ k):

  • 假设存在一些k,其中一些c和n_0使得对于n> n_0,c * n ^ k> n ^ log n。这是O(n ^ k)的定义。
  • 很容易找到一个带有常数的n,这样就不能保持。
  • 如果c> 1,那么该n是(ck)^ ck。
  • 如果c <1,那么该n是k ^ k。