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)
在这里你可以看到函数的增长
LetL=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))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