算法导论 3.2-3 证明题

证明等式(3.19)。并证明{\color{Red} n!=w(2^{n})}{\color{Red} n!=o(n^{n})}

解答:

等式(3.19):lg(n!)=θ(nlgn)

θ(g(n))表示以下函数的集合:

θ(g(n))={ f(n): 存在正常量c_{1}c_{2}n_{0},使得对所有n\geq n_{0},有0\leq c_{1}g(n)\leq f(n)\leq c_{2}g(n) }

要证明lg(n!)=θ(nlgn),则需要证明:

θ(nlgn)={ lg(n!): 存在正常量c_{1}c_{2}n_{0},使得对所有n\geq n_{0},有0\leq c_{1}nlgn\leq lg(n!)\leq c_{2}nlgn }

证明1:

根据斯特林公式可得:n!=\sqrt{2\pi n}(\frac{n}{e})^{n}(1+\Theta (\frac{1}{n})),由于1+\Theta (\frac{1}{n})\leq 2,可得n!\leq 2\cdot \sqrt{2\pi n}(\frac{n}{e})^{n},进一步的,可以推出

2\cdot \sqrt{2\pi n}(\frac{n}{e})^{n}=\sqrt{8\pi n}(\frac{n}{e})^{n} =\sqrt{8\pi }n^{\frac{1}{2}}\frac{n^{n}}{e^{n}}=\frac{\sqrt{8\pi }}{e^{n}}n^{n+\frac{1}{2}},当n> log_{e}\sqrt{8\pi }时,e^{n}> \sqrt{8\pi },可以推出\frac{\sqrt{8\pi }}{e^{n}}<1,进一步推出

\frac{\sqrt{8\pi }}{e^{n}}n^{n+\frac{1}{2}}< n^{n+\frac{1}{2}},当n> \frac{1}{2}时,n+\frac{1}{2}< 2n,由此可以进一步推得n^{n+\frac{1}{2}}<n^{2n},进一步可得

n!\leq n^{n+\frac{1}{2}}\leq n^{2n},所以 n!\leq n^{2n},我们对不等式两边取对数,可得 lgn!\leq lgn^{2n},由于lgn^{2n}=2nlgn,所以

lgn!\leq 2nlgn,由此可以得出,当c_{2}=2,且当n>max(\frac{1}{2})时, log_{e}\sqrt{8\pi })时,有lg(n!)\leq c_{2}nlgn

证明2:

根据斯特林公式可得:n!=\sqrt{2\pi n}(\frac{n}{e})^{n}(1+\Theta (\frac{1}{n})),由于1+\Theta (\frac{1}{n})\geq 1,可得\sqrt{2\pi n}(\frac{n}{e})^{n}(1+\Theta (\frac{1}{n}))\geq \sqrt{2\pi n}(\frac{n}{e})^{n}

n\geq e^{2}时,可得\sqrt{n}\geq e,进一步可得\frac{e}{\sqrt{n}}\leq 1,我们将左边的除法改为乘法,可得e\cdot n^{-\frac{1}{2}}\leq 1,我们取c_{1}=0.5,该不等式可以变换为

n^{c-1}e\leq 1,将不等式左右两边各处以e,可得n^{c-1}\leq \frac{1}{e},推出 \frac{n^{c}}{n}\leq \frac{1}{e},将不等式两边各乘以n,可得

n^{c}\leq \frac{n}{e},我们将不等式两边各取n次方,可得n^{cn}\leq (\frac{n}{e})^{n},即(\frac{n}{e})^{n} \geq n^{cn}

由于n!\geq \sqrt{2\pi n}(\frac{n}{e})^{n}(1+\Theta (\frac{1}{n}))\geq \sqrt{2\pi n}(\frac{n}{e})^{n}\geq (\frac{n}{e})^{n},又由于(\frac{n}{e})^{n} \geq n^{cn},可得n!\geq n^{cn}

也就是说,当c=0.5时,有n!\geq n^{cn}我们将不等式两边取2的对数,即可得lg(n!)\geq lgn^{cn}

由于lgn^{cn}=cnlgn,该不等式可以变为lgn!\geq cnlgn

因此我们可以得出,存在正常量c_{2}=0.5,使得对所有n\geq 1,有lg(n!)\geq c_{2}nlgn

结合证明1和证明2,等式(3.19)成立

 

证明:n!=w(2^{n})

ω记号定义如下:

ω(g(n)) = { f(n): 对任意正常量 c > 0,存在常量n_{0}>0,使得对所有n\geq n_{0},有0\leq cg(n)< f(n) }

要证明n!=w(2^{n}),则可转化为证明:

w(2^{n}) = {  n! : 对任意正常量 c > 0,存在常量n_{0}>0,使得对所有n\geq n_{0},有0\leq c2^{n}< n! }

由斯特林公式可得,n!=\sqrt{2\pi n}(\frac{n}{e})^{n}(1+\Theta (\frac{1}{n})),又由于\sqrt{2\pi n}>1,且1+\Theta (\frac{1}{n})>1,可得

n! > (\frac{n}{e})^{n},可以推出,当n>2e时,\frac{n}{e}>2,进一步可以推出  (\frac{n}{e})^{n}>2^{n}

由此可得,存在c=1,使得对所有n>2e,有0\leq c2^{n}< n!。得证。

 

证明n!=o(n^{n})

o记号定义如下:

o(g(n)) = { f(n): 对任意正常量c>0,存在常量n_{0}>0,使得对所有n\geq n_{0},有0\leq f(n)< cg(n) }

要证明n!=o(n^{n}),则可转化为证明:

o(n^{n}) = {  n! : 对任意正常量 c > 0,存在常量n_{0}>0,使得对所有n\geq n_{0},有0\leq n!< cn^{n} }

我们取c=1,通过数学归纳法:

初始:当n = 2时,n! < n^{n} 成立。

保持:当 n! < n^{n} 成立时,推得 n! < n^{n}<(n+1)^{n},故不等式n!<(n+1)^{n}成立。

将不等式左右两边各乘以n+1,得(n+1)\cdot n!<(n+1)\cdot (n+1)^{n} 。

由于(n+1)\cdot n!=(n+1)! ,(n+1)\cdot (n+1)^{n}=(n+1)^{n+1},可得

(n+1)!<(n+1)^{n+1} 。

因此n! < n^{n}成立。

n!=o(n^{n})得证。

 

 

 

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值