无法用log和分数计算函数的增长率

时间:2017-05-08 19:54:40

标签: algorithm complexity-theory discrete-mathematics big-theta

我试图在下面的图片中解决有关获得增长率的问题,但我不能。

formula

从我之前学到的,如果有一个分数,我们通常不关心分母,但考虑分子部分,即“2 + 3n”。

因此,从我的角度来看,答案是“2 + 3n< 2n + 3n = 5n,证人c = 5,k = 1”或“2 + 3n< n + 3n = 4n,见证c = 4并且k = 2“,两者都导致O(n)。

然而,根据答案,这是不正确的。

你能否展示我如何达到答案的整个计算步骤,Big-theta(root(n)/ log(n))?

1 个答案:

答案 0 :(得分:0)

您只需关注big O notation definition即可。对于这些,我喜欢使用big O的限制定义:

f(n) is in O(g(n)) if and only if:
lim n-> infinity |f(n) / g(n)| < infinity

然后将其应用于您的问题:

f(n) = (2+3n)/(5sqrt(n)(1+4logn))
g(n) = sqrt(n) / log(n)

只是对结果做一些代数:

lim n-> infinity: |f(n)/g(n)| = 
= |(2+3n)log(n)/(5sqrt(n)(1+4logn)sqrt(n))| <= 
<= |5nlog(n)/5sqrt(n)(1+4logn)sqrt(n))| = 
= |nlogn/ (sqrt(n) * sqrt(n) * (1+4logn)| = 
= |nlogn / n(1+4logn)| = 
= |logn / (1+4logn)| <= |logn / 4logn| = 1/4 < infinity

由此,以及大O表示法的定义,证明f(n)O(g(n))中。您可以通过显示lim n->infinity |g(n)/f(n)| < infinity同样显示大型欧米茄,并且通过显示O(g(n))Omega(g(n)),您可以断定这是紧密绑定(Theta(g(n))。