Algorithm 为什么函数f(n)=n^d,O(b^n)的复杂性是,其中b>;1和d是正的?

Algorithm 为什么函数f(n)=n^d,O(b^n)的复杂性是,其中b>;1和d是正的?,algorithm,complexity-theory,Algorithm,Complexity Theory,所以,我在《离散数学》一书中遇到了这个问题,它说,函数f(n)=n^d的复杂性是O(b^n),其中b>1和d是正的。但我似乎不明白为什么。任何帮助都将不胜感激。示例: d=2 f(2)=4,f(3)=9,f(4)=16 用于: d=3 f(2)=8,f(3)=21,f(4)=64。。。 . . 所以只要n>1(你说的是b,但它是n),d是正的 时间复杂度为O(n^d) 在这里你可以看到函数的增长 LetL=lim{n->inf}(n^d/b^n) =>ln(L)=lim{n->inf}(d*l

所以,我在《离散数学》一书中遇到了这个问题,它说,函数
f(n)=n^d
的复杂性是
O(b^n)
,其中
b>1
d
是正的。但我似乎不明白为什么。任何帮助都将不胜感激。

示例: d=2

f(2)=4,f(3)=9,f(4)=16

用于: d=3

f(2)=8,f(3)=21,f(4)=64。。。 . .

所以只要n>1(你说的是b,但它是n),d是正的 时间复杂度为O(n^d)

在这里你可以看到函数的增长 Let
L=lim{n->inf}(n^d/b^n)
=>ln(L)=lim{n->inf}(d*ln(n)/(n*ln(b)))
=(d/ln(b))*lim{n->inf}(ln(n)/n=(inf)/(inf)
=(d/ln(b))*lim{n->inf}(d/dn(ln(n))/d/dn(n))
(应用
L-Hospital

(自
b>1
ln(b)>0

=>L=exp(0)=1

由于
lim{n->inf}(n^d/b^n)
,当
b>1
时,我们可以说
n^d=O(b^n)
(关于
O
的替代定义,请参阅本节)


要点是
指数
函数比
多项式

增长得更快。我想我找到了一个替代@Sandipan Dey的解决方案。因为b>1和d>0,所以b^(1/d)>1。因此,logb(1/d)(n)
  => log n / log (b^(1/d)) < n
  => d*logn < d*n*log (b^(1/d))
  => log (n^d) < log (b^((1/d)*n*d)))
  => n^d <= b^n
日志n/log(b^(1/d))d*lognlog(n^d)=>n^d我不确定,但f(n)=n^2是O(2^n)。。不可能。。它将是O(n^2)。哪本书?作者?@麦片杀手是的,有可能。O(2^n)是O(n^2)的超集。我的错!误解。。。谢谢xszaboj的回答。它是关于找到上界的,它永远不会大于
b^n
  => log n / log (b^(1/d)) < n
  => d*logn < d*n*log (b^(1/d))
  => log (n^d) < log (b^((1/d)*n*d)))
  => n^d <= b^n