3.1 渐近记号
θ
记号
θ(g(n))
=
{f(n):
存在正常数
c1,c2,n0,
使得对所有
n≥n0,
有
0≤c1g(n)≤f(n)≤c2g(n)}
。
O
记号
Ω
记号
Ω(g(n))
=
{f(n):
存在正常数
c,n0,
使得对所有
n≥n0,
有
0≤cg(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))/2≤max(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)b≤c2nb
step2: 再进一步改为
(k1n)b≤(n+a)b≤(k2n)b
,从而只需证
k1n≤n+a≤k2n
step3: 当
n0=⌈a+1⌉
时
n≥n0
,
k1→0,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)
,从而可知存在
c1
和
c2
使得
c1g(n)≤f(n)≤c2g(n)
,从而得证。
3.1-6
根据定理3.1可知。
3.1-7
从定义上来证明。
3.1-8
略
3.2 标准记号与常用函数
—指数—
多项式与指数的增长率之间的关联:
limn→∞nban=0
(其中a>1) 从而可得
nb=o(an)
, 任意底大于1的指数函数比任意多项式函数增长的快。
自然对数e:
ex=1+x+x22!+x33!+...=∑i=0∞xii!
(对所有实数x)
从而有不等式
ex≥1+x
对所有x,我们有
limn→∞(1+xn)n=ex
—对数—
logba=logcalogcb
alogbc=clogba
多项式与多对数的增长互相关联:
limn→∞lgbnna=0
, 从而
lgbn=o(na)
.
—阶乘—
阶乘的斯特林近似公式:
n!=2πn−−−√(ne)n(1+θ(1n))
n! 的上下界:
n!=o(nn)
,
n!=ω(2n)
,
lg(n!)=θ(nlgn)
对所有
n≥1
有:
n!=2πn−−−√(ne)neαn
(其中:
112n+1<αn<112n
)
—斐波那契数—
定义:
F0=0,F1=1,Fi=Fi−1+Fi−2(i≥2)
黄金分割率
ϕ
及其共轭数
ϕ′
的值为:
x2=x+1
的两个根:
ϕ=1+5√2=1.61803...
和
ϕ′=1−5√2=−0.61803...
斐波那契数和黄金分割率的关系:
Fi=ϕi−ϕ′i5√
又因为
∣∣ϕ′∣∣<1
, 所以有
∣∣ϕ′i∣∣5√<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))=nlgn−nlge+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=0
时
F0
满足,当
i=1
时
F1
满足。
step2: 假设
Fn
及n以前均满足
step3:
Fn+1=Fn+Fn−1=(1+5√2)n−(1−5√2)n5√+(1+5√2)n−1−(1−5√2)n−15√=(1+5√2)n+1−(1−5√2)n+15√
得证 (注:其中用到
(1+5√2)2=3+5√2
和
(1−5√2)2=3−5√2
)
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. 根据多项式与对数的关系
limn→∞lgbnna=0
可知
lgkn=o(nε)
b. 根据多项式与指数的关系
limn→∞nban=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
,
c2
和
n0
使得
c1g(n)≤(g(n))c2
成立。显然存在。
d. 错误,如
f(n)=2n,g(n)=n
e.