我如何证明theta(log n)= o(log n)?

时间:2014-06-15 10:33:22

标签: algorithm big-theta clrs

我正在解决CLRS中我们需要证明的问题(ceil(lg lg n))!是多项式有界的。

Let g(n)=(ceil(lg lg n))!

lg(g(n))=lg((ceil(lg lg n))!)
        =theta(ceil(lg lg n) * lg (ceil(lg lg n))) [since lg(n!)=theta(n * lg n)
                                                    and replacing n by ceil(lg lg n) here.]
        =theta((lg lg n) * (lg lg lg n))  ----(1)  [since ceil(n)=theta(n)
                                                    and replacing n by (lg lg n) here.]

现在,如果我能证明theta(lg n)= o(n)

=>theta(lg lg lg n)=o(lg lg n)
=>theta((lg lg n) * (lg lg lg n))=o((lg lg n) * (lg lg n))
                                 =o((lg lg n)^2)
                                 =o(lg^2(lg n))
                                 =o(lg n)  ----(2) [Polylogarithmic functions grow slower than 
                                                    polynomial functions.
                                                    =>log^b(n)=o(n^a)
                                                    =>log^2(log n)=o(logn^1)
                                                    =>log^2(log n)=o(log n)]

From (1) and (2) we have log(g(n))=o(log n)
=>g(n)=o(n^a) that is g(n) is polynomially bounded.

我面临的唯一问题是证明 theta(lg n)= o(n)。 请帮忙!

1 个答案:

答案 0 :(得分:0)

要证明(ceil(lg lg n))!是多项式限制的,您还可以使用Stirling's approximation 斯特林说,n!主要是n^n。以下是:

ceil(lg lg n)! < (1 + lg lg n)! 
               < (1 + lg lg n)^(1 + lg lg n) 
               = (1 + lg lg n) * (1 + lg lg n)^(lg lg n)
               < (1 + lg lg n) * (2 * lg lg n)^(lg lg n)
               < (1 + lg lg n) * (lg n) * (lg lg n)^(lg lg n)

现在只剩下显示(lg lg n) ^ (lg lg n)是多项式有界:

             (lg lg n)^(lg lg n) < n
<=>   lg ( (lg lg n)^(lg lg n) ) < lg n
 =>   lg ( (lg lg n)^(lg lg n) ) = (lg lg n) * (lg lg lg n) 
                                 < sqrt(lg n) * sqrt(lg n)
                                 = lg n

总而言之,你得到了

ceil(lg lg n)! < (1 + lg lg n) * (lg n) * n

不使用Landau-notation。

关于你的问题(证明theta(lg n)=o(n)): f中的o(g)表示lim f(n)/g(n) -> 0的{​​{1}} - &gt;无穷。由于nlim (lg n)/n -> 0位于lg no(n)表示e in Theta(f) 因此,0 < liminf e(n)/f(n) <= limsup e(n)/f(n) < infinity中的e上限为Theta(f),常数为c* f(n)

因此c中的eTheta(lg n)限制,由于c * lg nlim c lg n / n -> 0也位于e