3.2 标准记号与常用函数
一.
1.单调性
若 m ≤ n m ≤ n m≤n 蕴含 f ( m ) ≤ f ( n ) f(m) ≤ f(n) f(m)≤f(n),则函数 f ( n ) f(n) f(n) 是单调递增的。类似地,若 m ≤ n m ≤ n m≤n 蕴含 f ( m ) ≥ f ( n ) f(m) ≥ f(n) f(m)≥f(n),则函数 f ( n ) f(n) f(n) 是单调递减的。若 m < n m < n m<n 蕴含 f ( m ) < f ( n ) f(m) < f(n) f(m)<f(n),则函数 f ( n ) f(n) f(n) 是严格递增的。若 m < n m < n m<n 蕴含 f ( m ) > f ( n ) f(m) > f(n) f(m)>f(n),则函数 f ( n ) f(n) f(n) 是严格递减的。
2.向下取整与向上取整
对任意实数
x
x
x,我们用
⌊
x
⌋
\lfloor x\rfloor
⌊x⌋ 表示小于或等于
x
x
x 的最大整数(读作“
x
x
x 的向下取整”),并用
⌈
x
⌉
\lceil x\rceil
⌈x⌉ 表示大于或等于
x
x
x 的最小整数(读作“
x
x
x 的向上取整”)。对所有实数
x
x
x,
x
−
1
<
⌊
x
⌋
≤
x
≤
⌈
x
⌉
<
x
+
1
x - 1<\lfloor x \rfloor≤x≤\lceil x \rceil<x+1
x−1<⌊x⌋≤x≤⌈x⌉<x+1 对任意整数
n
n
n,
⌈
n
2
⌉
+
⌊
n
2
⌋
=
n
\lceil \frac{n}{2} \rceil+\lfloor \frac{n}{2}\rfloor=n
⌈2n⌉+⌊2n⌋=n 对任意实数
x
≥
0
x ≥ 0
x≥0 和整数
a
,
b
>
0
a, b> 0
a,b>0,
⌈
⌈
x
a
⌉
b
⌉
=
⌈
x
a
b
⌉
\lceil \frac{\lceil\frac{x}{a}\rceil}{b}\rceil=\lceil\frac{x}{ab}\rceil
⌈b⌈ax⌉⌉=⌈abx⌉
⌊
⌊
x
a
⌋
b
⌋
=
⌊
x
a
b
⌋
\lfloor \frac{\lfloor\frac{x}{a}\rfloor}{b}\rfloor=\lfloor\frac{x}{ab}\rfloor
⌊b⌊ax⌋⌋=⌊abx⌋
⌈
a
b
⌉
≤
a
+
(
b
−
1
)
b
\lceil\frac{a}{b}\rceil≤\frac{a+(b-1)}{b}
⌈ba⌉≤ba+(b−1)
⌊
a
b
⌋
≥
a
+
(
b
−
1
)
b
\lfloor\frac{a}{b}\rfloor≥\frac{a+(b-1)}{b}
⌊ba⌋≥ba+(b−1)
向下取整函数
f
(
x
)
=
⌊
x
⌋
f(x) = \lfloor x\rfloor
f(x)=⌊x⌋ 是单调递增的,向上取整函数
f
(
x
)
=
⌈
x
⌉
f(x) = \lceil x\rceil
f(x)=⌈x⌉ 是单调递增的。
3.模运算
对任意整数 a a a 和任意正整数 n n n, a m o d n = a − n ⌊ a n ⌋ a\bmod n=a-n\lfloor\frac{a}{n}\rfloor amodn=a−n⌊na⌋ 结果有 0 ≤ a m o d n < n 0≤a\bmod n<n 0≤amodn<n
4.多项式
给定一个非负整数
d
d
d,
n
n
n 的
d
d
d 次多项式为具有以下形式的一个函数
p
(
n
)
p(n)
p(n),
p
(
n
)
=
∑
i
=
0
d
a
i
n
i
p(n)=\sum_{i=0}^{d}a_in^i
p(n)=i=0∑daini 其中常量
a
0
,
a
1
,
.
.
.
,
a
d
a_0,a_1, ... , a_d
a0,a1,...,ad 是多项式的系数且
a
d
≠
0
a_d≠ 0
ad=0。一个多项式为渐近正的当且仅当
a
d
>
0
a_d > 0
ad>0。对于一个
d
d
d 次渐近正的多项式
p
(
n
)
p(n)
p(n),有
p
(
n
)
=
Θ
(
n
d
)
p(n) = Θ(n^d)
p(n)=Θ(nd)。
若对某个常量
k
k
k,有
f
(
n
)
=
O
(
n
k
)
f(n) = O(n^k)
f(n)=O(nk),则称函数
f
(
n
)
f(n)
f(n) 是多项式有界的。
5.指数
对所有
n
n
n 和
a
≥
1
a ≥ 1
a≥1,函数
a
n
a^n
an 关于
n
n
n 单调递增。方便时,我们假定
0
0
=
1
0^0 = 1
00=1。
对所有使得
a
>
1
a > 1
a>1 的实常量
a
a
a 和
b
b
b,有
lim
n
→
∞
n
b
a
n
=
0
\lim_{n\rightarrow \infty}\frac{n^b}{a^n}=0
n→∞limannb=0 据此可得
n
b
=
o
(
a
n
)
n^b=o(a^n)
nb=o(an) 因此,任意底大于
1
1
1 的指数函数比任意多项式函数增长得快。
当
∣
x
∣
≤
1
|x| ≤ 1
∣x∣≤1 时,我们有近似估计
1
+
x
≤
e
x
≤
1
+
x
+
x
2
1+x≤e^x≤1+x+x^2
1+x≤ex≤1+x+x2 当
x
→
0
x \rightarrow 0
x→0 时,用
1
+
x
1 + x
1+x 作为
e
x
e^x
ex的近似是相当好的:
e
x
=
1
+
x
+
Θ
(
x
2
)
e^x=1+x+\Theta(x^2)
ex=1+x+Θ(x2) 对所有
x
x
x,我么有:
lim
n
→
∞
(
1
+
x
n
)
n
=
e
x
\lim_{n\rightarrow\infty}(1+\frac{x}{n})^n=e^x
n→∞lim(1+nx)n=ex
6.对数
对数函数只适用于公式中的下一项。
对
x
>
−
1
x > -1
x>−1,还有下面的不等式:
x
1
+
x
≤
l
n
(
1
+
x
)
≤
x
\frac{x}{1+x}≤ln(1+x)≤x
1+xx≤ln(1+x)≤x 其中仅对
x
=
0
x = 0
x=0 等号成立。
若对某个常量
k
k
k,
f
(
n
)
=
O
(
lg
k
n
)
f(n) = O(\lg{k^ n})
f(n)=O(lgkn),则称函数
f
(
n
)
f(n)
f(n)是多对数有界的。
lim
n
→
∞
lg
b
n
(
2
a
)
lg
n
=
lim
n
→
∞
lg
b
n
n
a
=
0
\lim_{n\rightarrow\infty}\frac{\lg^bn}{(2^a)^{\lg n}}=\lim_{n\rightarrow\infty}\frac{\lg^bn}{n^a}=0
n→∞lim(2a)lgnlgbn=n→∞limnalgbn=0 对任意常量
a
>
0
a > 0
a>0,
lg
b
n
=
o
(
n
a
)
\lg^b n = o(n^a)
lgbn=o(na) 因此,任意正的多项式函数都比任意多对数函数增长得快。
7.阶乘
阶乘函数的一个弱上界是
n
!
≤
n
n
n!≤n^n
n!≤nn 斯特林(Stirling)近似公式如下:
n
!
=
2
π
n
(
n
e
)
n
(
1
+
Θ
(
1
n
)
)
n!=\sqrt{2\pi n}(\frac{n}{e})^n(1+\Theta(\frac{1}{n}))
n!=2πn(en)n(1+Θ(n1)) 给出了一个更紧确的上界和下界。
对所有
n
≥
1
n ≥ 1
n≥1,下面的等式也成立:
n
!
=
2
π
n
(
n
e
)
n
e
α
n
n!=\sqrt{2\pi n}(\frac{n}{e})^ne^{\alpha_n}
n!=2πn(en)neαn 其中:
1
12
n
+
1
<
α
n
<
1
12
n
\frac{1}{12n+1}<\alpha_n<\frac{1}{12n}
12n+11<αn<12n1
8.多重函数
f ( i ) ( n ) = { n , 若 i = 0 f ( f ( i − 1 ) ( n ) ) , 若 i > 0 f^{(i)}(n)= \begin{cases} n, & \text {若 i = 0} \\ f(f^{(i-1)}(n)), & \text{若 i > 0} \end{cases} f(i)(n)={n,f(f(i−1)(n)),若 i = 0若 i > 0
9.多重对数函数
我们使用记号 lg ∗ n \lg^* n lg∗n(读作“ log 星 n ”)来表示多重对数,下面会给出它的定义。假设 lg ( i ) n \lg^{(i)} n lg(i)n 定义如上,其中 f ( n ) = lg n f(n) = \lg n f(n)=lgn。定义多重对数函数为 l g ∗ n = m i n { i ≥ 0 : l g ( i ) ≤ 1 } lg^*n=min\{i≥0:lg^{(i)}≤1\} lg∗n=min{i≥0:lg(i)≤1} 因为在可探测的宇宙中原子的数目估计约为 1 0 8 0 10^80 1080,远远小于 2 65536 2^{65536} 265536,所以我们很少遇到一个使 lg ∗ n > 5 \lg^*n > 5 lg∗n>5的输入规模 n n n。
10.斐波那契数
使用下面的递归式来定义斐波那契数:
F
0
=
0
F_0=0
F0=0
F
1
=
1
F_1=1
F1=1
F
i
=
F
i
−
1
+
F
i
−
2
,
i
≥
2
F_i=F_{i-1}+F_{i-2},i≥2
Fi=Fi−1+Fi−2,i≥2 斐波那契数与黄金分割率
ϕ
\phi
ϕ 及其共轭数
ϕ
^
\hat\phi
ϕ^ 有关。他们是下列方程的两个根:
x
2
=
x
+
1
x^2=x+1
x2=x+1
ϕ
=
1
+
5
2
=
1.61803...
\phi=\frac{1+\sqrt{5}}{2}=1.61803...
ϕ=21+5=1.61803...
ϕ
^
=
1
−
5
2
=
−
0.61803...
\hat\phi=\frac{1-\sqrt{5}}{2}=-0.61803...
ϕ^=21−5=−0.61803... 特别地,我们有
F
i
=
ϕ
i
−
ϕ
^
i
5
F_i=\frac{\phi^i-\hat\phi^i}{\sqrt5}
Fi=5ϕi−ϕ^i 因为
∣
ϕ
^
∣
<
1
|\hat\phi| < 1
∣ϕ^∣<1,所以有
∣
ϕ
^
i
∣
5
<
1
5
<
1
2
\frac{|\hat\phi^i|}{\sqrt5}<\frac{1}{\sqrt5}<\frac{1}{2}
5∣ϕ^i∣<51<21 这蕴含着
F
i
=
⌊
ϕ
i
5
+
1
2
⌋
F_i=\lfloor\frac{\phi^i}{\sqrt{5}}+\frac{1}{2}\rfloor
Fi=⌊5ϕi+21⌋ 这就是说第
i
i
i个斐波那契数
F
i
F_i
Fi 等于
φ
i
5
\frac{φ^i}{\sqrt 5}
5φi 舍入到最近的整数。因此,斐波那契数以指数形式增长。
二.
3.2-1
证明:若 f ( n ) f(n) f(n) 和 g ( n ) g(n) g(n) 是单调递增的函数,则函数 f ( n ) + g ( n ) f(n) + g(n) f(n)+g(n) 和 f ( g ( n ) ) f(g(n)) f(g(n)) 也是单调递增的,此外,若 f ( n ) f(n) f(n) 和 g ( n ) g(n) g(n) 是非负的,则 f ( n ) ⋅ g ( n ) f(n)\cdot g(n) f(n)⋅g(n) 是单调递增的。
证明:对任意
n
1
、
n
2
∈
N
n_1、n_2 \in N
n1、n2∈N,
f
(
n
1
)
<
f
(
n
2
)
f(n_1) < f(n_2)
f(n1)<f(n2),
g
(
n
1
)
<
g
(
n
2
)
g(n_1) < g(n_2)
g(n1)<g(n2),则
f
(
n
1
)
+
g
(
n
1
)
<
f
(
n
2
)
+
g
(
n
2
)
f(n_1)+g(n_1)<f(n_2)+g(n_2)
f(n1)+g(n1)<f(n2)+g(n2)
f
(
g
(
n
1
)
)
<
f
(
g
(
n
2
)
)
f(g(n_1))<f(g(n_2))
f(g(n1))<f(g(n2)) 故函数
f
(
n
)
+
g
(
n
)
f(n) + g(n)
f(n)+g(n) 和
f
(
g
(
n
)
)
f(g(n))
f(g(n)) 单调递增。
若
f
(
n
)
f(n)
f(n),
g
(
n
)
g(n)
g(n) 是非负的,则
f
(
n
1
)
⋅
g
(
n
1
)
<
f
(
n
2
)
⋅
g
(
n
2
)
f(n_1)\cdot g(n_1) < f(n_2) \cdot g(n_2)
f(n1)⋅g(n1)<f(n2)⋅g(n2) 故
f
(
n
)
⋅
g
(
n
)
f(n) · g(n)
f(n)⋅g(n) 是单调递增的。
3.2-2
证明等式 (3.16) a log b c = c log b a a^{\log _{b} c}=c^{\log_{b}a} alogbc=clogba
证明:要证 a log b c = c log b a a^{\log _{b} c}=c^{\log_{b}a} alogbc=clogba 即证 lg a ⋅ log b c = lg c ⋅ log b a \lg a\cdot{\log _{b} c}=\lg c\cdot{\log_{b}a} lga⋅logbc=lgc⋅logba 即证 lg a ⋅ lg c lg b = lg c ⋅ lg a lg b \lg a\cdot\frac{\lg c}{\lg b}=\lg c\cdot\frac{\lg a}{\lg b} lga⋅lgblgc=lgc⋅lgblga 证毕。
3.2-3
证明等式(3.19) lg ( n ! ) = Θ ( n lg n ) \lg(n!)=\Theta(n\lg n) lg(n!)=Θ(nlgn) 并证明 n ! = ω ( 2 n ) n! = ω(2^n) n!=ω(2n) 且 n ! = o ( n n ) n! = o(n^n) n!=o(nn)。
证明:取 c 1 = 1 c_1 = 1 c1=1, c 2 = 1 2 c_2 = \frac{1}{2} c2=21,则由于 lg ( n ! ) = ∑ i = 1 n lg i ≤ n lg n \lg(n!)=\sum_{i=1}^{n}\lg i≤n\lg n lg(n!)=i=1∑nlgi≤nlgn 当 n n n 足够大时, lg ( n ! ) = ∑ i = 1 ⌊ n 2 ⌋ lg i + ∑ i = ⌊ n 2 ⌋ + 1 n lg i ≥ n 2 lg n 2 ≥ n 4 lg n \lg(n!)=\sum_{i=1}^{\lfloor\frac{n}{2}\rfloor}\lg i+\sum_{i = \lfloor\frac{n}{2}\rfloor+1}^{n}\lg i≥\frac{n}{2}\lg\frac{n}{2}≥\frac{n}{4}\lg n lg(n!)=i=1∑⌊2n⌋lgi+i=⌊2n⌋+1∑nlgi≥2nlg2n≥4nlgn 故而 lg ( n ! ) = Θ ( n lg n ) \lg(n!)=\Theta(n\lg n) lg(n!)=Θ(nlgn) 取 c = 1 2 c = \frac{1}{2} c=21,对任意 n ∈ N n \in N n∈N,则 n ! ≥ 1 2 ⋅ 2 n > 0 n! ≥ \frac{1}{2}\cdot 2^n>0 n!≥21⋅2n>0 故而 n ! = ω ( 2 n ) n! = ω(2^n) n!=ω(2n) 取 c = 1 c = 1 c=1,对任意 n ∈ N n \in N n∈N,则 n ! ≤ n n n! ≤ n^n n!≤nn 故而 n ! = o ( n n ) n! = o(n^n) n!=o(nn)
*3.2-4
函数 ⌈ lg n ⌉ ! ⌈\lg n⌉! ⌈lgn⌉! 多项式有界吗?函数 ⌈ lg lg n ⌉ ! ⌈\lg \lg n⌉! ⌈lglgn⌉! 多项式有界吗?
解:设
⌈
lg
n
⌉
=
m
\lceil\lg n\rceil=m
⌈lgn⌉=m 故
m
!
=
2
π
m
(
m
e
)
m
e
2
m
>
(
m
e
)
m
e
2
m
=
(
m
e
)
m
=
e
m
(
ln
m
+
1
)
>
n
ln
m
+
1
>
n
ln
ln
m
m!=\sqrt{2\pi m}(\frac{m}{e})^me^{2m}>(\frac{m}{e})^me^{2m}=(me)^m=e^{m(\ln m+1)}>n^{\ln m+1}>n^{\ln\ln m}
m!=2πm(em)me2m>(em)me2m=(me)m=em(lnm+1)>nlnm+1>nlnlnm 从而函数
⌈
lg
n
⌉
!
⌈\lg n⌉!
⌈lgn⌉! 不是多项式有界的。
设
⌈
lg
lg
n
⌉
=
m
\lceil\lg\lg n\rceil=m
⌈lglgn⌉=m
m
!
<
m
m
<
(
2
m
)
m
=
2
m
2
<
2
2
m
−
1
m! <m^m<(2^m)^m=2^{m^2}<2^{2^{m-1}}
m!<mm<(2m)m=2m2<22m−1 并且
lg
lg
n
≥
m
−
1
,
n
≥
2
2
m
−
1
\lg\lg n≥m-1,n≥2^{2^{m-1}}
lglgn≥m−1,n≥22m−1
⌈
lg
lg
n
⌉
<
2
2
m
−
1
≤
n
\lceil\lg\lg n\rceil<2^{2^{m-1}}≤n
⌈lglgn⌉<22m−1≤n 故
⌈
lg
lg
n
⌉
!
⌈\lg \lg n⌉!
⌈lglgn⌉! 是多项式有界。
*3.2-5
如下两个函数中,哪一个渐近更大些: lg ( lg ∗ n ) \lg(\lg^* n) lg(lg∗n) 还是 lg ∗ ( lg n ) \lg^* (\lg n) lg∗(lgn)?
证明:后者大一些(套的层数少一些)。
3.2-6
证明:黄金分割率 ϕ \phi ϕ 及其共轭数 ϕ ^ \hat\phi ϕ^ 都满足方程 x 2 = x + 1 x^2=x+1 x2=x+1。
证明:代入 ϕ 2 = ( 5 + 1 2 ) 2 = 3 + 5 2 = ϕ + 1 \phi^2=(\frac{\sqrt 5+1}{2})^2=\frac{3+\sqrt 5}{2}=\phi+1 ϕ2=(25+1)2=23+5=ϕ+1 ϕ ^ 2 = ( 5 − 1 2 ) 2 = 3 − 5 2 = ϕ ^ + 1 \hat\phi^2=(\frac{\sqrt 5-1}{2})^2=\frac{3-\sqrt 5}{2}=\hat\phi+1 ϕ^2=(25−1)2=23−5=ϕ^+1
3.2-7
用归纳法证明:第 i i i 个斐波那契数满足等式 F i = ϕ i − ϕ ^ i 5 F_i=\frac{\phi^i-\hat\phi^i}{\sqrt5} Fi=5ϕi−ϕ^i 其中 ϕ \phi ϕ 是黄金分割率且 ϕ ^ \hat\phi ϕ^ 是共轭数。
证明:使用数学归纳法,当 i = 0 i = 0 i=0 时, F 0 = ( 1 + 5 2 ) 0 − ( 1 − 5 2 ) 0 5 = 0 F_0 =\frac{(\frac{1+\sqrt 5}{2})^0-(\frac{1-\sqrt 5}{2})^0}{\sqrt 5}=0 F0=5(21+5)0−(21−5)0=0 当 i < n i < n i<n 时, F i = ( 1 + 5 2 ) i − ( 1 − 5 2 ) i 5 F_i =\frac{(\frac{1+\sqrt 5}{2})^i-(\frac{1-\sqrt 5}{2})^i}{\sqrt 5} Fi=5(21+5)i−(21−5)i 从而当 i = n i = n i=n 时 F n = F n − 1 + F n − 2 = ( 1 + 5 2 ) n − 1 − ( 1 − 5 2 ) n − 1 5 + ( 1 + 5 2 ) n − 2 − ( 1 − 5 2 ) n − 2 5 = ( 1 + 5 2 ) n − 2 ⋅ 3 + 5 2 − ( 1 − 5 2 ) n − 1 ⋅ 3 − 5 2 5 = ( 1 + 5 2 ) n − ( 1 − 5 2 ) n 5 \begin{aligned} F_n & = F_{n-1}+F_{n-2}\\ &=\frac{(\frac{1+\sqrt 5}{2})^{n-1}-(\frac{1-\sqrt 5}{2})^{n-1}}{\sqrt 5}+\frac{(\frac{1+\sqrt 5}{2})^{n-2}-(\frac{1-\sqrt 5}{2})^{n-2}}{\sqrt 5}\\ &=\frac{(\frac{1+\sqrt 5}{2})^{n-2}\cdot\frac{3+\sqrt 5}{2}-(\frac{1-\sqrt 5}{2})^{n-1}\cdot\frac{3-\sqrt 5}{2}}{\sqrt 5}\\ & = \frac{(\frac{1+\sqrt 5}{2})^n-(\frac{1-\sqrt 5}{2})^n}{\sqrt 5} \end{aligned} Fn=Fn−1+Fn−2=5(21+5)n−1−(21−5)n−1+5(21+5)n−2−(21−5)n−2=5(21+5)n−2⋅23+5−(21−5)n−1⋅23−5=5(21+5)n−(21−5)n 综上所述, F i = ϕ i − ϕ ^ i 5 F_i=\frac{\phi^i-\hat\phi^i}{\sqrt5} Fi=5ϕi−ϕ^i
3.2-8
证明: k ln k = Θ ( n ) k\ln k = Θ(n) klnk=Θ(n) 蕴含着 k = Θ ( n ln n ) k = Θ(\frac{n}{\ln n}) k=Θ(lnnn)
证明:由于 k l n k = Θ ( n ) kln k = Θ(n) klnk=Θ(n),则 n = Θ ( k l n k ) n = Θ(kln k) n=Θ(klnk),要证 k = Θ ( n ln n ) k = Θ(\frac{n}{\ln n}) k=Θ(lnnn)即证 n ln n = Θ ( k ) \frac{n}{\ln n} = Θ(k) lnnn=Θ(k)。代入条件: n ln n = Θ ( k ln k ln ( k ln k ) ) = Θ ( k l n k l n k ) = Θ ( k ) \frac{n}{\ln n}=\Theta(\frac{k\ln k}{\ln (k\ln k)})=\Theta(\frac{klnk}{lnk})=\Theta(k) lnnn=Θ(ln(klnk)klnk)=Θ(lnkklnk)=Θ(k) 即: n ln n = Θ ( k ) \frac{n}{\ln n} = \Theta(k) lnnn=Θ(k)
3-1
(多项式的渐近行为)假设
p
(
n
)
=
∑
i
=
0
d
a
i
n
i
p(n) = \sum_{i=0}^da_in^i
p(n)=i=0∑daini 是一个关于
n
n
n 的
d
d
d 次多项式,其中
a
d
>
0
a_d > 0
ad>0,
k
k
k 是一个常量。使用渐近记号的定义来证明下面的性质。
a. 若
k
≥
d
k ≥ d
k≥d,则
p
(
n
)
=
O
(
n
k
)
p(n) = O(n^k)
p(n)=O(nk)。
b. 若
k
≤
d
k ≤ d
k≤d,则
p
(
n
)
=
Ω
(
n
k
)
p(n) = Ω(n^k)
p(n)=Ω(nk)。
c. 若
k
=
d
k = d
k=d,则
p
(
n
)
=
Θ
(
n
k
)
p(n) = Θ(n^k)
p(n)=Θ(nk)。
d. 若
k
>
d
k > d
k>d,则
p
(
n
)
=
o
(
n
k
)
p(n) = o(n^k)
p(n)=o(nk)。
e. 若
k
<
d
k < d
k<d,则
p
(
n
)
=
ω
(
n
k
)
p(n) = ω(n^k)
p(n)=ω(nk)。
证明:
a. 设
a
m
a
x
=
{
a
1
,
a
2
,
.
.
.
,
a
d
}
≥
a
d
>
0
a_{max} = \{a_1, a_2,...,a_d\} ≥a_d>0
amax={a1,a2,...,ad}≥ad>0,取
c
=
d
a
m
a
x
,
n
0
=
1
c=da_{max},n_0=1
c=damax,n0=1,则有
p
(
n
)
=
∑
i
=
0
d
a
i
n
i
≤
∑
i
=
0
d
a
m
a
x
n
i
≤
d
a
m
a
x
n
d
=
c
n
d
≤
c
n
k
p(n)=\sum_{i=0}^{d}a_in^i≤\sum_{i=0}^{d}a_{max}n^i≤da_{max}n^d=cn^d≤cn^k
p(n)=i=0∑daini≤i=0∑damaxni≤damaxnd=cnd≤cnk 从而
p
(
n
)
=
O
(
n
k
)
p(n) = O(n^k)
p(n)=O(nk) 成立
b. 取
c
=
1
2
a
d
c=\frac{1}{2}a_d
c=21ad,对
∃
n
0
>
0
,
s
.
t
.
∀
n
>
n
0
\exists n_0 >0,s.t.\forall n >n_0
∃n0>0,s.t.∀n>n0,均有
1
2
a
d
n
d
+
∑
i
=
0
d
−
1
a
i
n
i
>
0
\frac{1}{2}a_dn^d+\sum_{i=0}^{d-1}a_in^i>0
21adnd+∑i=0d−1aini>0,从而
c
n
k
≤
c
n
d
=
1
2
a
d
n
d
≤
1
2
a
d
n
d
+
1
2
a
d
n
d
+
∑
i
=
0
d
−
1
a
i
n
i
=
p
(
n
)
=
∑
i
=
0
d
a
i
n
i
cn^k≤cn^d=\frac{1}{2}a_dn^d≤\frac{1}{2}a_dn^d+\frac{1}{2}a_dn^d+\sum_{i=0}^{d-1}a^in^i=p(n)=\sum_{i=0}^{d}a_in^i
cnk≤cnd=21adnd≤21adnd+21adnd+i=0∑d−1aini=p(n)=i=0∑daini 从而
p
(
n
)
=
Ω
(
n
k
)
p(n) = \Omega(n^k)
p(n)=Ω(nk)成立
c. 当
k
=
d
k = d
k=d 时,由 a. 和 b. 及定理 3.1 知,
p
(
n
)
=
Θ
(
n
k
)
p(n)=\Theta(n^k)
p(n)=Θ(nk)成立
d. 当
k
<
d
k<d
k<d时,设
a
m
a
x
=
{
a
1
,
a
2
,
.
.
.
,
a
d
}
≥
a
d
>
0
a_{max} = \{a_1, a_2,...,a_d\} ≥a_d>0
amax={a1,a2,...,ad}≥ad>0,取
c
=
d
a
m
a
x
,
n
0
=
1
c=da_{max},n_0=1
c=damax,n0=1,则有
p
(
n
)
=
∑
i
=
0
d
a
i
n
i
≤
∑
i
=
0
d
a
m
a
x
n
i
≤
d
a
m
a
x
n
d
=
c
n
d
<
c
n
k
p(n)=\sum_{i=0}^{d}a_in^i≤\sum_{i=0}^{d}a_{max}n^i≤da_{max}n^d=cn^d<cn^k
p(n)=i=0∑daini≤i=0∑damaxni≤damaxnd=cnd<cnk 从而
p
(
n
)
=
o
(
n
k
)
p(n) = o(n^k)
p(n)=o(nk) 成立
e. 取
c
=
1
2
a
d
c=\frac{1}{2}a_d
c=21ad,对
∃
n
0
>
0
,
s
.
t
.
∀
n
>
n
0
\exists n_0 >0,s.t.\forall n >n_0
∃n0>0,s.t.∀n>n0,均有
1
2
a
d
n
d
+
∑
i
=
0
d
−
1
a
i
n
i
>
0
\frac{1}{2}a_dn^d+\sum_{i=0}^{d-1}a_in^i>0
21adnd+∑i=0d−1aini>0,从而
c
n
k
<
c
n
d
=
1
2
a
d
n
d
≤
1
2
a
d
n
d
+
1
2
a
d
n
d
+
∑
i
=
0
d
−
1
a
i
n
i
=
p
(
n
)
=
∑
i
=
0
d
a
i
n
i
cn^k<cn^d=\frac{1}{2}a_dn^d≤\frac{1}{2}a_dn^d+\frac{1}{2}a_dn^d+\sum_{i=0}^{d-1}a^in^i=p(n)=\sum_{i=0}^{d}a_in^i
cnk<cnd=21adnd≤21adnd+21adnd+i=0∑d−1aini=p(n)=i=0∑daini 从而
p
(
n
)
=
ω
(
n
k
)
p(n) = \omega(n^k)
p(n)=ω(nk)成立
3-2
(相对渐近增长)为下表中的每对表达式 ( A , B ) (A, B) (A,B) 指出 A A A 是否是 B B B 的 O O O、 o o o、 Ω Ω Ω、 ω ω ω 或 Θ Θ Θ。假设 k ≥ 1 k ≥ 1 k≥1、 ε > 0 ε > 0 ε>0 且 c > 1 c > 1 c>1 均为常量。回答应该以表格的形式,将“是”或“否”写在每个空格中。
A | B | O | o | Ω | ω | Θ | |
---|---|---|---|---|---|---|---|
a. | lg k n \lg^kn lgkn | n ε n^ε nε | 是 | 是 | 否 | 否 | 否 |
b. | n k n^k nk | c n c^n cn | 是 | 是 | 否 | 否 | 否 |
c. | n \sqrt n n | n sin n n^{\sin n} nsinn | 否 | 否 | 否 | 否 | 否 |
d. | 2 n 2^n 2n | 2 n 2 2^{\frac{n}{2}} 22n | 否 | 否 | 是 | 是 | 否 |
e. | n lg c n^{\lg c} nlgc | c lg n c^{\lg n} clgn | 是 | 否 | 是 | 否 | 是 |
f. | lg ( n ! ) \lg(n!) lg(n!) | lg ( n n ) \lg(n^n) lg(nn) | 是 | 否 | 是 | 否 | 是 |
3-3
(根据渐近增长率排序)
a. 根据增长的阶来排序下面的函数,即求出满足
g
1
=
Ω
(
g
2
)
g_1 = Ω(g_2)
g1=Ω(g2),
g
2
=
Ω
(
g
3
)
g_2 = Ω(g_3)
g2=Ω(g3), … ,
g
29
=
Ω
(
g
30
)
g_{29} = Ω(g_{30})
g29=Ω(g30) 的函数的一种排列
g
1
,
g
2
,
.
.
.
,
g
30
g_1,g_2,...,g_{30}
g1,g2,...,g30。把你的表划分成等价类,使得函数
f
(
n
)
f(n)
f(n) 和
g
(
n
)
g(n)
g(n) 在相同类中当且仅当
f
(
n
)
=
Θ
(
g
(
n
)
)
f(n) = Θ(g(n))
f(n)=Θ(g(n))。
lg ( lg ∗ n ) \lg(\lg ^* n) lg(lg∗n) | 2 lg ∗ n 2^{\lg ^*n} 2lg∗n | ( 2 ) lg n (\sqrt2)^{\lg n} (2)lgn | n 2 n^2 n2 | n ! n! n! | ( lg n ) ! (\lg n)! (lgn)! |
( 3 2 ) n (\frac{3}{2})^n (23)n | n 3 n^3 n3 | lg 2 n \lg^2 n lg2n | lg ( n ! ) \lg(n!) lg(n!) | 2 2 n 2^{2^n} 22n | n 1 lg n n^{\frac{1}{\lg n}} nlgn1 |
ln ln n \ln\ln n lnlnn | lg ∗ n \lg^* n lg∗n | n ∗ 2 n n * 2^n n∗2n | n lg lg n n ^{\lg\lg n} nlglgn | ln n \ln n lnn | 1 1 1 |
2 lg n 2^{\lg n} 2lgn | ( lg n ) lg n (\lg n)^{\lg n} (lgn)lgn | e n e^n en | 4 lg n 4^{\lg n} 4lgn | ( n + 1 ) ! (n + 1)! (n+1)! | lg n \sqrt{\lg n} lgn |
lg ∗ ( lg n ) \lg*(\lg n) lg∗(lgn) | 2 2 lg n 2^{\sqrt{2\lg n}} 22lgn | n n n | 2 n 2^n 2n | n lg n n\lg n nlgn | 2 2 n + 1 2^{2^{n+1}} 22n+1 |
b. 给出非负函数 f ( n ) f(n) f(n) 的一个例子,使得对所有在 (a) 部分中的的函数 g i ( n ) , f ( n ) g_i(n),f(n) gi(n),f(n) 既不是 O ( g i ( n ) ) O(g_i(n)) O(gi(n)) 也不是 Ω ( g i ( n ) ) Ω(g_i(n)) Ω(gi(n))。
证明:a. 先进行化简,
(
2
)
lg
n
=
n
(\sqrt2)^{\lg n}=\sqrt n
(2)lgn=n,
lg
(
n
!
)
=
Θ
(
n
lg
n
)
\lg(n!)=\Theta(n\lg n)
lg(n!)=Θ(nlgn),
2
lg
n
=
n
2^{\lg n}=n
2lgn=n,
4
lg
n
=
n
2
4^{\lg n}=n^2
4lgn=n2,
2
2
lg
n
=
n
2
2^{2\lg n}=n^2
22lgn=n2, 从而给出这样的排列:
2
2
n
+
1
,
2
2
n
,
(
n
+
1
)
!
,
n
!
,
e
n
,
n
∗
2
n
,
2
n
,
(
3
2
)
n
,
(
lg
n
)
lg
n
、
n
lg
lg
n
,
(
lg
n
)
!
,
n
3
,
n
2
、
4
lg
n
,
lg
(
n
!
)
,
n
lg
n
,
n
、
2
lg
n
,
(
2
)
lg
n
,
2
2
lg
n
,
lg
2
n
,
ln
n
,
lg
n
,
ln
ln
n
,
2
lg
∗
n
,
lg
∗
n
、
lg
∗
(
lg
n
)
,
lg
(
lg
∗
n
)
,
n
1
lg
n
、
1
2^{2^{n+1}},2^{2^n},(n+1)!,n!,e^n,n*2^n,2^n,\\(\frac{3}{2})^n,(\lg n)^{\lg n}、n^{\lg\lg n},(\lg n)!,n^3,n^2、4^{\lg n},\lg(n!),n\lg n,n、2^{\lg n},\\(\sqrt2)^{\lg n},2^{\sqrt{2\lg n}},\lg^2n,\ln n,\\\sqrt{\lg n},\ln\ln n,2^{\lg^*n},\lg^*n、\lg^*(\lg n),\lg(\lg^*n),n^{\frac{1}{\lg n}}、1
22n+1,22n,(n+1)!,n!,en,n∗2n,2n,(23)n,(lgn)lgn、nlglgn,(lgn)!,n3,n2、4lgn,lg(n!),nlgn,n、2lgn,(2)lgn,22lgn,lg2n,lnn,lgn,lnlnn,2lg∗n,lg∗n、lg∗(lgn),lg(lg∗n),nlgn1、1
b.
f
(
n
)
=
n
sin
n
f(n) = n^{\sin n}
f(n)=nsinn
3-4
(渐近记号的性质)假设
f
(
n
)
f(n)
f(n) 和
g
(
n
)
g(n)
g(n) 为渐近正函数。证明或者反驳下面的每一个猜测。
a.
f
(
n
)
=
O
(
g
(
n
)
)
f(n) = O(g(n))
f(n)=O(g(n)) 蕴含
g
(
n
)
=
O
(
f
(
n
)
)
g(n) = O(f(n))
g(n)=O(f(n))。
b.
f
(
n
)
+
g
(
n
)
=
Θ
(
min
(
f
(
n
)
,
g
(
n
)
)
)
f(n) + g(n) = Θ(\min(f(n), g(n)))
f(n)+g(n)=Θ(min(f(n),g(n)))。
c.
f
(
n
)
=
O
(
g
(
n
)
)
f(n) = O(g(n))
f(n)=O(g(n)) 蕴含
lg
(
f
(
n
)
)
=
O
(
lg
(
g
(
n
)
)
)
\lg(f(n)) = O(\lg(g(n)))
lg(f(n))=O(lg(g(n))),其中对所有足够大的
n
n
n ,有
lg
(
g
(
n
)
)
)
≥
1
\lg(g(n))) ≥1
lg(g(n)))≥1 且
f
(
n
)
≥
1
f(n) ≥ 1
f(n)≥1。
d.
f
(
n
)
=
O
(
g
(
n
)
)
f(n) = O(g(n))
f(n)=O(g(n)) 蕴含
2
f
(
n
)
=
O
(
2
g
(
n
)
)
2^{f(n)} = O(2^{g(n)})
2f(n)=O(2g(n))。
e.
f
(
n
)
=
O
(
(
f
(
n
)
)
2
)
f(n) = O((f(n))^2)
f(n)=O((f(n))2)。
f.
f
(
n
)
=
O
(
g
(
n
)
)
f(n) = O(g(n))
f(n)=O(g(n)) 蕴含
g
(
n
)
=
Ω
(
f
(
n
)
)
g(n) = Ω(f(n))
g(n)=Ω(f(n))。
g.
f
(
n
)
=
Θ
(
f
(
n
/
2
)
)
f(n) = Θ(f(n/2))
f(n)=Θ(f(n/2))。
h.
f
(
n
)
+
o
(
f
(
n
)
)
=
Θ
(
f
(
n
)
)
f(n) + o(f(n)) = Θ(f(n))
f(n)+o(f(n))=Θ(f(n))。
解:a. 假设不成立。如
f
(
n
)
=
n
,
g
(
n
)
=
n
2
f(n) = n,g(n)=n^2
f(n)=n,g(n)=n2
b. 假设不成立。
f
(
n
)
+
g
(
n
)
=
Θ
(
max
(
f
(
n
)
,
g
(
n
)
)
)
f(n) + g(n) = Θ(\max(f(n), g(n)))
f(n)+g(n)=Θ(max(f(n),g(n)))
c. 假设成立。若
f
(
n
)
=
O
(
g
(
n
)
)
f(n) = O(g(n))
f(n)=O(g(n)),则
∃
c
、
n
0
>
0
,
s
.
t
.
0
≤
f
(
n
)
≤
c
g
(
n
)
\exists c、n_0>0,s.t.0≤f(n)≤cg(n)
∃c、n0>0,s.t.0≤f(n)≤cg(n),
∃
n
1
>
0
,
f
(
n
)
≥
max
(
1
,
c
2
,
2
∣
c
∣
)
,
即
lg
(
f
(
n
)
)
>
0
,
g
(
n
)
≥
c
且
g
(
n
)
>
2
\exists n_1>0,f(n)≥\max(1,c^2,2|c|),即\lg(f(n))>0,g(n)≥c且g(n)>2
∃n1>0,f(n)≥max(1,c2,2∣c∣),即lg(f(n))>0,g(n)≥c且g(n)>2,从而
∃
n
=
max
(
n
0
,
n
1
)
>
0
,
s
.
t
.
0
≤
lg
f
(
n
)
≤
lg
c
g
(
n
)
=
lg
c
+
lg
g
(
n
)
≤
2
lg
g
(
n
)
\exists n=\max(n_0,n_1)>0,s.t.\space0≤\lg f(n)≤\lg cg(n)=\lg c+\lg g(n)≤2\lg g(n)
∃n=max(n0,n1)>0,s.t. 0≤lgf(n)≤lgcg(n)=lgc+lgg(n)≤2lgg(n)
d. 假设不成立。如
f
(
n
)
=
2
n
,
g
(
n
)
=
n
f(n) = 2n,g(n)=n
f(n)=2n,g(n)=n
e. 假设不成立。如
f
(
n
)
=
1
n
f(n) = \frac1{n}
f(n)=n1
f. 假设成立。转置对称性。
g. 假设不成立。如
f
(
n
)
=
2
n
f(n) = 2^{n}
f(n)=2n
h. 假设成立。如设
g
(
n
)
=
o
(
f
(
n
)
)
g(n)=o(f(n))
g(n)=o(f(n)),则
∀
c
>
0
,
∃
n
0
>
0
,
s
.
t
.
∀
n
>
n
0
,
0
≤
g
(
n
)
<
c
f
(
n
)
\forall c>0,\exists n_0>0,s.t.\forall n>n_0,0≤g(n)<cf(n)
∀c>0,∃n0>0,s.t.∀n>n0,0≤g(n)<cf(n),于是取
c
=
1
c=1
c=1,从而
∃
n
0
>
0
,
s
.
t
.
∀
n
>
n
0
,
0
≤
f
(
n
)
+
g
(
n
)
<
2
f
(
n
)
\exists n_0>0,s.t.\forall n>n_0,0≤f(n)+g(n)<2f(n)
∃n0>0,s.t.∀n>n0,0≤f(n)+g(n)<2f(n),故而
f
(
n
)
+
o
(
f
(
n
)
)
=
Θ
(
f
(
n
)
)
f(n) + o(f(n)) = Θ(f(n))
f(n)+o(f(n))=Θ(f(n))。
3-5
(
O
O
O 与
Ω
Ω
Ω 的一些变形)某些作者用一种与我们稍微不同的方式来定义
Ω
Ω
Ω;假设我们使用
Ω
∞
\stackrel{\infty}{\Omega}
Ω∞(读作“Ω 无穷”)来表示这种可选的定义。若存在正常量
c
c
c,使得对无穷多个整数
n
n
n,有
f
(
n
)
≥
c
g
(
n
)
≥
0
f(n) ≥ cg(n) ≥ 0
f(n)≥cg(n)≥0,则称
f
(
n
)
=
Ω
∞
(
g
(
n
)
)
f(n) = \stackrel{\infty}{\Omega}(g(n))
f(n)=Ω∞(g(n))。
a. 证明:对渐近非负的任意两个函数
f
(
n
)
f(n)
f(n) 和
g
(
n
)
g(n)
g(n),或者
f
(
n
)
=
O
(
g
(
n
)
)
f(n) = O(g(n))
f(n)=O(g(n)) 或者
f
(
n
)
=
Ω
∞
(
g
(
n
)
)
f(n) = \stackrel{\infty}{\Omega}(g(n))
f(n)=Ω∞(g(n)) 或者二者均成立,然而,如果使用
Ω
Ω
Ω 来代替
Ω
∞
\stackrel{\infty}{\Omega}
Ω∞,那么命题并不为真。
b. 描述用
Ω
∞
\stackrel{\infty}{\Omega}
Ω∞代替
Ω
Ω
Ω 来刻画程序运行时间的潜在优点与缺点。
某些作者也用一种稍微不同的方式来定义
O
O
O;假设使用
O
′
O^{'}
O′来表示这种可选的定义。我们称
f
(
n
)
=
O
′
(
g
(
n
)
)
f(n) = O^{′}(g(n))
f(n)=O′(g(n)) 当且仅当
∣
f
(
n
)
∣
=
O
(
g
(
n
)
)
|f(n)| = O(g(n))
∣f(n)∣=O(g(n))。
c. 如果使用
O
′
O^{′}
O′代替
O
O
O 但仍然使用
Ω
Ω
Ω,定理3.1中的“当且仅当”的每个方向将出现什么情况?
有些作者定义
O
~
\widetilde O
O
(读作“软
O
O
O”)来意指忽略对数因子的
O
O
O:
O
~
(
g
(
n
)
)
=
{
f
(
n
)
:
存
在
正
常
量
c
,
k
和
n
0
,
使
得
对
所
有
n
≥
n
0
,
有
0
≤
f
(
n
)
≤
c
g
(
n
)
l
g
k
(
n
)
}
\widetilde O(g(n))=\{f(n):存在正常量c,k和n_0,使得对所有n≥n_0,有0≤f(n)≤cg(n)lg^k(n)\}
O
(g(n))={f(n):存在正常量c,k和n0,使得对所有n≥n0,有0≤f(n)≤cg(n)lgk(n)}
d. 用一种类似的方式定义
Ω
~
\widetildeΩ
Ω
和
Θ
~
\widetildeΘ
Θ
。证明与定理3.1相对应的类似结论。
证明:a. 如果
f
(
n
)
=
O
(
g
(
n
)
)
f(n)=O(g(n))
f(n)=O(g(n)),那么,存在正常数
c
c
c 和
n
0
n_0
n0,使对所有
n
≥
n
0
n≥n_0
n≥n0,有
0
≤
f
(
n
)
≤
c
g
(
n
)
0≤f(n)≤cg(n)
0≤f(n)≤cg(n).
倘若
f
(
n
)
≠
O
(
g
(
n
)
)
f(n)≠O(g(n))
f(n)=O(g(n)),则任意正常数
c
c
c 和
n
0
n_0
n0,都存在
n
>
n
0
n>n_0
n>n0,使得
f
(
n
)
>
c
g
(
n
)
f(n)>cg(n)
f(n)>cg(n),于是对给定的常数
c
c
c,每次取
n
i
=
n
i
−
1
+
1
n_i = n_{i-1}+1
ni=ni−1+1,从而有无数个正常数
n
0
,
n
1
,
.
.
.
n
i
,
.
.
.
n_0,n_1,...n_i,...
n0,n1,...ni,...,使得
f
(
n
)
>
c
g
(
n
)
f(n)>cg(n)
f(n)>cg(n),即
f
(
n
)
=
Ω
∞
(
g
(
n
)
)
f(n) = \stackrel{\infty}{\Omega}(g(n))
f(n)=Ω∞(g(n))。
陈述反过来亦可。然而取渐近非负函数
f
(
n
)
=
n
,
g
(
n
)
=
2
+
sin
n
f(n) = n, g(n) = 2 + \sin n
f(n)=n,g(n)=2+sinn 可知不可以将命题的
Ω
\Omega
Ω 取代
Ω
∞
\stackrel{\infty}{\Omega}
Ω∞。
b. 优点:任意渐近非负的两个函数的关系均可由
Ω
\Omega
Ω 或
Ω
∞
\overset{\infty}{\Omega}
Ω∞表示。
缺点:不能明确比较两个函数的增长率的大小。
c. 没有变化
对于足够大的
n
n
n,由于
f
(
n
)
=
O
(
g
(
n
)
)
f(n) = O(g(n))
f(n)=O(g(n)),故而
f
(
n
)
f(n)
f(n) 渐近非负,等价于
∣
f
(
n
)
∣
=
O
(
g
(
n
)
)
|f(n)| = O(g(n))
∣f(n)∣=O(g(n))。
d.
Ω
~
(
g
(
n
)
)
=
{
f
(
n
)
:
存
在
正
常
量
c
,
k
和
n
0
,
使
得
对
所
有
n
≥
n
0
,
有
0
≤
c
g
(
n
)
l
g
k
(
n
)
≤
f
(
n
)
}
\widetilde\Omega(g(n))=\{f(n):存在正常量c,k和n_0,使得对所有n≥n_0,有0≤cg(n)lg^k(n)≤f(n)\}
Ω
(g(n))={f(n):存在正常量c,k和n0,使得对所有n≥n0,有0≤cg(n)lgk(n)≤f(n)}
Θ
~
(
g
(
n
)
)
=
{
f
(
n
)
:
存
在
正
常
量
c
1
,
c
2
,
k
1
,
k
2
和
n
0
,
使
得
对
所
有
n
≥
n
0
,
有
c
1
g
(
n
)
l
g
k
1
(
n
)
≤
f
(
n
)
≤
c
2
g
(
n
)
l
g
k
2
(
n
)
}
\widetilde\Theta(g(n))=\{f(n):存在正常量c_1,c_2,k_1,k_2和n_0,使得对所有n≥n_0,有c_1g(n)lg^{k_1}(n)≤f(n)≤c_2g(n)lg^{k_2}(n)\}
Θ
(g(n))={f(n):存在正常量c1,c2,k1,k2和n0,使得对所有n≥n0,有c1g(n)lgk1(n)≤f(n)≤c2g(n)lgk2(n)}
结论:对任意两个函数
f
(
n
)
f(n)
f(n) 和
g
(
n
)
g(n)
g(n),我们有
f
(
n
)
=
Θ
~
(
g
(
n
)
)
f(n) = \widetildeΘ(g(n))
f(n)=Θ
(g(n)),当且仅当
f
(
n
)
=
O
~
(
g
(
n
)
)
f(n) = \widetilde O(g(n))
f(n)=O
(g(n)) 且
f
(
n
)
=
Ω
~
(
g
(
n
)
)
f(n) = \widetildeΩ(g(n))
f(n)=Ω
(g(n))
必要性:
由于
f
(
n
)
=
Θ
~
(
g
(
n
)
)
f(n) = \widetildeΘ(g(n))
f(n)=Θ
(g(n)),故而存在正常量
c
1
、
c
2
、
k
1
、
k
2
c_1、c_2、k_1、k_2
c1、c2、k1、k2 和
n
0
n_0
n0,使得对所有
n
≥
n
0
n ≥ n_0
n≥n0,有
0
≤
c
1
g
(
n
)
lg
k
1
(
n
)
≤
f
(
n
)
≤
c
2
g
(
n
)
lg
k
2
(
n
)
0 ≤ c_1g(n)\lg^{k_1}(n) ≤ f(n) ≤ c_2g(n)\lg^{k_2}(n)
0≤c1g(n)lgk1(n)≤f(n)≤c2g(n)lgk2(n)。故而存在正常量
c
2
、
k
2
c_2、k_2
c2、k2 和
n
0
n_0
n0,使得对所有
n
≥
n
0
n ≥ n_0
n≥n0,有
0
≤
f
(
n
)
≤
c
2
g
(
n
)
lg
k
2
(
n
)
0 ≤ f(n) ≤ c_2g(n)\lg^{k_2}(n)
0≤f(n)≤c2g(n)lgk2(n),即
f
(
n
)
=
O
~
(
g
(
n
)
)
f(n) = \widetilde O(g(n))
f(n)=O
(g(n))。存在正常量
c
1
、
k
1
c_1、k_1
c1、k1 和
n
0
n_0
n0,使得对所有
n
≥
n
0
n ≥ n_0
n≥n0,有
0
≤
c
1
g
(
n
)
lg
k
1
(
n
)
≤
f
(
n
)
0 ≤ c_1g(n)\lg^{k_1}(n) ≤ f(n)
0≤c1g(n)lgk1(n)≤f(n) 即
f
(
n
)
=
Ω
~
(
g
(
n
)
)
f(n) = \widetildeΩ(g(n))
f(n)=Ω
(g(n))。
充分性:
f
(
n
)
=
O
~
(
g
(
n
)
)
f(n) = \widetilde O(g(n))
f(n)=O
(g(n)) 且
f
(
n
)
=
Ω
~
(
g
(
n
)
)
f(n) = \widetildeΩ(g(n))
f(n)=Ω
(g(n)),则存在正常量
c
2
、
k
2
c_2、k_2
c2、k2 和
n
0
n_0
n0,使得对所有
n
≥
n
0
n ≥ n_0
n≥n0,有
0
≤
f
(
n
)
≤
c
2
g
(
n
)
lg
k
2
(
n
)
0 ≤ f(n) ≤ c_2g(n)\lg^{k_2}(n)
0≤f(n)≤c2g(n)lgk2(n),即
f
(
n
)
=
O
~
(
g
(
n
)
)
f(n) = \widetilde O(g(n))
f(n)=O
(g(n));存在正常量
c
1
、
k
1
c_1、k_1
c1、k1 和
n
0
n_0
n0,使得对所有
n
≥
n
0
n ≥ n_0
n≥n0,有
0
≤
c
1
g
(
n
)
lg
k
1
(
n
)
≤
f
(
n
)
0 ≤ c_1g(n)\lg^{k_1}(n) ≤ f(n)
0≤c1g(n)lgk1(n)≤f(n) 即
f
(
n
)
=
Ω
~
(
g
(
n
)
)
f(n) = \widetildeΩ(g(n))
f(n)=Ω
(g(n))。故存在正常量
c
1
、
c
2
、
k
1
、
k
2
c_1、c_2、k_1、k_2
c1、c2、k1、k2 和
n
0
n_0
n0,使得对所有
n
≥
n
0
n ≥ n_0
n≥n0,有
0
≤
c
1
g
(
n
)
lg
k
1
(
n
)
≤
f
(
n
)
≤
c
2
g
(
n
)
lg
k
2
(
n
)
0 ≤ c_1g(n)\lg^{k_1}(n) ≤ f(n) ≤ c_2g(n)\lg^{k_2}(n)
0≤c1g(n)lgk1(n)≤f(n)≤c2g(n)lgk2(n) 即
f
(
n
)
=
Θ
~
(
g
(
n
)
)
f(n) = \widetildeΘ(g(n))
f(n)=Θ
(g(n))。
3-6
(多重函数)我们可以把用于函数
lg
∗
\lg^*
lg∗ 中的重复操作符
∗
*
∗ 应用于实数集上的任意单调递增函数
f
(
n
)
f(n)
f(n)。对给定的常量
c
∈
R
c \in R
c∈R,我们定义多重函数
f
c
∗
f^*_c
fc∗ 为
f
c
∗
(
n
)
=
min
{
i
≥
0
:
f
(
i
)
(
n
)
≤
c
}
f^*_c(n)=\min\{i≥0:f^{(i)}(n)≤c\}
fc∗(n)=min{i≥0:f(i)(n)≤c} 该函数不必在所有情况下都为良定义的。换句话说,值
f
c
∗
(
n
)
f^*_c(n)
fc∗(n) 是为缩小其参数到
c
c
c 或更小所需要函数
f
f
f 重复应用的数目。
对如下每个函数
f
(
n
)
f(n)
f(n) 和常量
c
c
c,给出
f
c
∗
(
n
)
f^*_c(n)
fc∗(n) 的一个尽量紧确的界。
f(n) | c | f c ∗ ( n ) f^*_c(n) fc∗(n) | |
---|---|---|---|
a. | n − 1 n-1 n−1 | 0 | n − 1 , Θ ( n ) n-1,\Theta(n) n−1,Θ(n) |
b. | lg n \lg n lgn | 1 | lg ∗ n , Θ ( lg ∗ n ) \lg^*n,\Theta(\lg^*n) lg∗n,Θ(lg∗n) |
c. | n 2 \frac{n}{2} 2n | 1 | lg n , Θ ( lg n ) \lg n,\Theta(\lg n) lgn,Θ(lgn) |
d. | n 2 \frac{n}{2} 2n | 2 | lg n − 1 , Θ ( lg n ) \lg n-1,\Theta(\lg n) lgn−1,Θ(lgn) |
e. | n \sqrt n n | 2 | lg lg n , Θ ( lg lg n ) \lg\lg n,\Theta(\lg\lg n) lglgn,Θ(lglgn) |
f. | n \sqrt{n} n | 1 | n > 1 n>1 n>1时不存在 |
g. | n 1 3 n^{\frac{1}{3}} n31 | 2 | log 3 lg n , Θ ( log 3 lg n ) \log_3\lg n,\Theta(\log_3\lg n) log3lgn,Θ(log3lgn) |
h. | n lg n \frac{n}{\lg n} lgnn | 2 | ω ( l g l g n ) , o ( l g n ) ω(lglgn),o(lgn) ω(lglgn),o(lgn) |