Chapter3 Growth of Functions

本文详细介绍了算法分析中的渐近记号,包括θ、O、Ω的定义与使用,并通过具体例题展示了如何利用这些记号来评估函数的增长速度。此外,还探讨了指数、对数、阶乘等常见函数的增长特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.1 渐近记号

θ记号 θ(g(n))={f(n):存在正常数c1,c2,n0,使得对所有nn0,0c1g(n)f(n)c2g(n)}
O记号 O(g(n))={f(n):存在正常数c,n0,使得对所有nn0,0f(n)cg(n)}
Ω记号 Ω(g(n))={f(n):存在正常数c,n0,使得对所有nn0,0cg(n)}f(n)}

—–Exercise—–
3.1-1
证明:max(f(n),g(n))=θ(f(n)+g(n))
step1: 根据定义,上式等价于 c1(f(n)+g(n))max(f(n),g(n))c2(f(n)+g(n)).
step2: 且根据 (f(n)+g(n))/2max(f(n),g(n))f(n)+g(n),可知,c1=1/2,c2=1 可满足要求,所以得证

3.1-2
证明对任意实常量a和b,其中b>0,有(n+a)b=θ(nb)
step1: 将上式转换为 c1nb(n+a)bc2nb
step2: 再进一步改为 (k1n)b(n+a)b(k2n)b,从而只需证 k1nn+ak2n
step3: 当 n0=a+1nn0k10,k2=3满足条件,得证。

3.1-3
因为O这一符号包含了上限的意思。

3.1-4
2n+1=O(2n)成立,22n=O(2n)不成立。

3.1-5
条件 f(n)=O(g(n))f(n)=Ω(g(n))
求证 f(n)=θ(g(n))
证明: 根据定义 0<f(n)c2g(n)0<c1g(n)f(n),从而可知存在c1c2使得c1g(n)f(n)c2g(n),从而得证。

3.1-6
根据定理3.1可知。

3.1-7
从定义上来证明。

3.1-8

3.2 标准记号与常用函数

—指数—
多项式与指数的增长率之间的关联:limnnban=0 (其中a>1) 从而可得 nb=o(an) , 任意底大于1的指数函数比任意多项式函数增长的快。

自然对数e: ex=1+x+x22!+x33!+...=i=0xii! (对所有实数x)
从而有不等式 ex1+x
对所有x,我们有 limn(1+xn)n=ex

—对数—
logba=logcalogcb
alogbc=clogba
多项式与多对数的增长互相关联: limnlgbnna=0, 从而lgbn=o(na).

—阶乘—
阶乘的斯特林近似公式:n!=2πn(ne)n(1+θ(1n))
n! 的上下界: n!=o(nn), n!=ω(2n), lg(n!)=θ(nlgn)
对所有n1有: n!=2πn(ne)neαn(其中:112n+1<αn<112n

—斐波那契数—
定义: F0=0,F1=1,Fi=Fi1+Fi2(i2)
黄金分割率ϕ及其共轭数ϕ的值为:x2=x+1的两个根:ϕ=1+52=1.61803...ϕ=152=0.61803...
斐波那契数和黄金分割率的关系:Fi=ϕiϕi5
又因为ϕ<1, 所以有ϕi5<15<12,从而Fi=ϕi5+12, 蕴含着斐波那契数以指数形式增长。

—–Exercise—–
3.2-1
条件:f(n)g(n)均是单调递增函数
需证:f(n)+g(n)f(g(n))也是单调递增的
很明显的感觉!略
若增加条件f(n)g(n)均非负,证f(n)g(n)也单调递增

3.2-2
证明: alogbc=clogba
等式两边同时取ln得: 左边=logbclna=lnclnblna, 右边=logbalnc=lnalnblnc. 从而 左边=右边, 得证

3.2-3
根据斯特林公式可得: n!=lg(2πn1/2)+nlgne+lg(1+θ(1/n))=nlgnnlge+12lgn+θ(n)
从而例如c2=2,c1=1,n0=10便可满足要求,从而得证。 后续的两个证明较易,略。

3.2-4

3.2-5

3.2-6
常规的解二次方程即可。

3.2-7
证明 Fi=ϕiϕi5
step1: 当 i=0F0满足,当i=1F1满足。
step2: 假设Fn及n以前均满足
step3: Fn+1=Fn+Fn1=(1+52)n(152)n5+(1+52)n1(152)n15=(1+52)n+1(152)n+15得证 (注:其中用到(1+52)2=3+52(152)2=352)

3.2-8
用到性质f(n)=θ(g(n))g(n)=θ(f(n))。从而有klnk=θ(n)n=θ(klnk),且只需证k=θ(n/lnn)n/lnn=θ(k)
根据n/lnn=θ(klnkln(klnk))=θ(k),从而得证。

思考题

3-1

3-2
a. 根据多项式与对数的关系 limnlgbnna=0可知 lgkn=o(nε)
b. 根据多项式与指数的关系 limnnban=0 (其中a>1) 可知 nk=o(cn)
c. 由于 nsinn存在周期性波动(如每半个周期值回到1),所以不存在上下界关系
d. 2n=(2n/2)2可知2n=ω(2n/2)
e. 根据 alogbc=clogba 可知nlgc=clgn,从而 nlgc=θ(clgn).
f. 根据n!=ω(nn)可得 lg(n!)=ω(lg(nn)).

3-3

3-4
a. 错误,,如n2=O(n3)n3!=O(n2)
b. 错误,如n2+n不满足
c. 正确, f(n)=O(g(n))f(n)cg(n)lg(f(n))=O(lg(g(n)))lg(f(n))clg(g(n))。从而只需满足存在c1,c2n0使得c1g(n)(g(n))c2成立。显然存在。
d. 错误,如f(n)=2n,g(n)=n
e.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值