繁体   English   中英

如何证明渐近符号

[英]How to Prove Asymptotic Notations

我想证明以下陈述

2^(⌊lg n⌋+⌈lg n⌉)∕n ∈ Θ(n)

我知道要证明这一点,我们必须找到常量c1>0c2>0n0>0使得

c1.g(n) <= f(n) <= c2.g(n) for all n >= n0

换句话说,我们必须证明f(n) <= cg(n) and f(n) >= cg(n)

问题是如何证明左手边(2^(⌊lg n⌋+⌈lg n⌉)∕n)

谢谢

您可以先扩展指数。 它等于n1 * n2 / n,其中n1 <= n <= n2、2 * n1> n和n * 2> n2。 其余的应该很容易。

这是上限的推导:

2^(⌊lg n⌋+⌈lg n⌉)/n
= 2^(2⌊lg n⌋+1)/n 
<= 2^(2 lg n + 1)/n
= 2^(2 lg n) 2^(1) / n
= 2 n^2 / n
= 2 n
= O(n)

因此,我们知道您的函数可以被2 * n限制。 现在我们执行下限:

2^(⌊lg n⌋+⌈lg n⌉)/n
= 2^(2⌈lg n⌉ - 1) / n
>= 2^(2 lg n - 1)/n
= 2^(2 lg n) 2^(-1) / n
= 1/2 n^2 / n
= 1/2 n
= O(n)

现在我们知道您的函数可以被n / 2限制。

在gnuplot上检查; 这些答案看起来又好又紧。 这是使用floor()和ceiling()函数定义的纯代数解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM