我想证明以下陈述
2^(⌊lg n⌋+⌈lg n⌉)∕n ∈ Θ(n)
我知道要证明这一点,我们必须找到常量c1>0
,c2>0
和n0>0
,以便
c1.g(n) <= f(n) <= c2.g(n) for all n >= n0
换句话说,我们必须证明f(n) <= c.g(n) and f(n) >= c.g(n)
。
问题是如何证明左侧(2^(⌊lg n⌋+⌈lg n⌉)∕n)
谢谢
答案 0 :(得分:0)
您可以从扩展指数开始。它等于n1 * n2 / n,其中n1 <= n <= n2,2 * n1> n且n * 2> n2。其余的应该很容易。
答案 1 :(得分:0)
这是上限的推导:
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()函数的定义。