我需要比较以下功能的增长率:
f(n)= 2 ^ n且g(n)= n ^ log(n)(当n接近正无穷大时)。
这甚至可能吗?
答案 0 :(得分:2)
让n = 2^k
。我们有:
2^n = 2^(2^k)
n^log(n) = (2^k)^log(2^k) = (2^k)^(k log 2)
= 2^(k^2 log 2)
现在将2^k
与k^2 log 2
进行比较。这是一个基本比较:2^k
对于所有足够大的k
来说都更大。
答案 1 :(得分:0)
将log
(基数2)用于这两个函数,我们得到log(f(n)) = n
log(g(n)) = (log(n))^2
。
现在,(log(n))^2 = o(n)
和log
是一个单调递增的函数,我们有
g(n) = o(f(n))
,即f(n)
对n
的大值增长更快。
以下是另一种更严格证明这一点的方法:
让L = lim{n->inf} g(n) / f(n) = lim{n->inf} n^(log(n))/2^n
。
因此log (L) = lim{n->inf} log^2(n) - n
` = lim{n->inf} n*(log^2(n)/n) - 1)`
` = lim{n->inf} (n) * lim{n->inf} (log^2(n)/n) - 1)`
` = lim{n->inf} (n) * (0-1)`
` = lim{n->inf} (-n) = -inf`
=> L = 2^(-inf) = 0
根据o(n)
的替代定义(小o
,请参阅此处:https://en.wikipedia.org/wiki/Big_O_notation),
L = lim{n->inf} g(n) / f(n) = 0
=> g(n) = o(f(n))
。
以下是比较原始和对数比例f(n)
和g(n)
增长的数据: