首先证明f(n)多项式有界的充分必要条件是lgf(n)=O(lgn)
1、若存在常数c和n0,当n>=n0时,f(n)<c*n的k次方
则lg(f(n))<klg(cn)=klgc+klgn
根据上式容易证明,lg(f(n))=O(lgn)
2、若lg(fn)=O(lgn)
则存在常数c和n0,当n>=n0,lg(f(n))<clgn
所以f(n)<n的c次方
根据上面证明出来的公式,来证明两个小题。
1、设f(n)=(lgn)!,由公式3.19,lg(n!)=θ(nlgn),得lg(f(n))=lg((lgn)!)=θ(lgnlg(lgn))
则存在常数c和n0,当n>=n0时,lg(f(n))>=clgnlg(lgn)
由于lg(lgn)是单调递增函数,总可以在n>=n0的范围内找到n>=n1,使得clg(lgn)>=1
则此时lg(f(n))>=lgn,并不能满足lgf(n)=O(lgn)
所以(lgn)!并不是多项式有界函数。
2、设f(n)=(lglgn)!,由公式3.19,lg(n!)=θ(nlgn),得lg(f(n))=lg((lglgn)!)=θ(lglgnlglglgn)
因为对于任意的n>1,lglglgn<lglgn,则存在常数c和n0,使得n>=n0时,lg(f(n))<=c(lglgn)²
又因为任意多项式函数都比任意多对数函数增长快,所以c(lglgn)²=O(lgn)
所以lg(f(n))=O(lgn)
则f(n)=(lglgn)!多项式有界。