笔记
1. 向下取整与向上取整
⌊x⌋⌊x⌋⌊x⌋是对xxx向下取整,表示小于或等于xxx的最大整数。⌈x⌉⌈x⌉⌈x⌉是对xxx向上取整,表示大于或等于xxx的最小整数。向下取整与向上取整具有以下规律:
(1) 对所有实数xxx,有x−1<⌊x⌋≤x≤⌈x⌉<x+1x-1<⌊x⌋≤x≤⌈x⌉<x+1x−1<⌊x⌋≤x≤⌈x⌉<x+1
(2) 对任意整数nnn,有⌈n/2⌉+⌊n/2⌋=n⌈n/2⌉+⌊n/2⌋=n⌈n/2⌉+⌊n/2⌋=n
(3) 对任意实数x≥0x ≥ 0x≥0和整数a,b>0a, b > 0a,b>0,有
⌈⌈x/a⌉b⌉=⌈xab⌉⌈\frac{⌈x/a⌉}{b}⌉=⌈\frac{x}{ab}⌉⌈b⌈x/a⌉⌉=⌈abx⌉
⌊⌊x/a⌋b⌋=⌊xab⌋⌊\frac{⌊x/a⌋}{b}⌋=⌊\frac{x}{ab}⌋⌊b⌊x/a⌋⌋=⌊abx⌋
⌈ab⌉≤a+(b−1)b⌈\frac{a}{b}⌉≤\frac{a+(b-1)}{b}⌈ba⌉≤ba+(b−1)
⌊ab⌋≥a−(b−1)b⌊\frac{a}{b}⌋≥\frac{a-(b-1)}{b}⌊ba⌋≥ba−(b−1)
(4) 向下取整函数f(x)=⌊x⌋f(x)=⌊x⌋f(x)=⌊x⌋是单调递增的,向上取整函数f(x)=⌈x⌉f(x)=⌈x⌉f(x)=⌈x⌉也是单调递增的。
2. 模运算
对任意整数aaa和任意正整数nnn,模运算a mod na\ {\rm mod}\ na mod n的结果就是aaa除以nnn的余数,即
a mod n=a−n⌊a/n⌋a\ {\rm mod}\ n=a-n⌊a/n⌋a mod n=a−n⌊a/n⌋
模运算的结果满足0≤a mod n<n0≤a\ {\rm mod}\ n<n0≤a mod n<n。
如果a mod n=b mod na\ {\rm mod}\ n=b\ {\rm mod}\ na mod n=b mod n,则说明aaa与bbb除以nnn的余数相同,记为a≡b(mod n)a≡b({\rm mod}\ n)a≡b(mod n),并称模nnn时aaa等价于bbb。模运算具有以下性质:
a≡b(mod n) ⇔ n是b−a的一个因子a≡b({\rm mod}\ n)\ \ \ \ \ ⇔\ \ \ \ \ n是b-a的一个因子a≡b(mod n) ⇔ n是b−a的一个因子
3. 多项式
给定一个非负整数ddd,nnn的ddd次多项式为
p(n)=a0+a1n+a2n2+⋯+adnd=∑i=0dainip(n)=a_0+a_1 n+a_2 n^2+⋯+a_d n^d=∑_{i=0}^da_i n^ip(n)=a0+a1n+a2n2+⋯+adnd=∑i=0daini
其中,常量a0,a1,…,ada_0, a_1, …, a_da0,a1,…,ad是多项式的系数,并且ad≠0a_d ≠ 0ad̸=0。
一个多项式为渐近正当且仅当ad>0a_d > 0ad>0。对于一个ddd次渐近正的多项式p(n)p(n)p(n),有p(n)=Θ(nd)p(n) = Θ(n^d)p(n)=Θ(nd)。如果一个函数f(n)=O(nd)f(n) = O(n^d)f(n)=O(nd),则称该函数是多项式有界的。
4. 指数函数
(1) 指数函数的基本性质
对所有实数a>0a > 0a>0、mmm和nnn,以下等式成立
a0=1a^0=1a0=1
a1=aa^1=aa1=a
a−1=1aa^{-1}=\frac{1}{a}a−1=a1
(am)n=amn(a^m )^n=a^{mn}(am)n=amn
am∙an=am+na^m∙a^n=a^{m+n}am∙an=am+n
(2) 指数函数与多项式函数比较
给定一个指数函数f(n)=anf(n) = a^nf(n)=an (其中a>1a > 1a>1),一个多项式函数g(n)=nbg(n) = n^bg(n)=nb,有limn→∞nban=0lim_{n→∞}\frac {n^b}{a^n}=0limn→∞annb=0。据此可得,nb=o(an)n^b = o(a^n)nb=o(an),这说明任意底大于111的指数函数比任意多项式函数增长得快。
(3) 自然对数的底eee
自然对数的底e=2.71828…e = 2.71828…e=2.71828…。对所有实数xxx,有
ex=1+x+x22!+x33!+⋯=∑i=0∞xii!e^x=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+⋯=∑_{i=0}^∞\frac{x^i}{i!}ex=1+x+2!x2+3!x3+⋯=∑i=0∞i!xi
对所有实数xxx,有ex≥1+xe^x≥1+xex≥1+x成立。只有当x=0x = 0x=0时,等号才成立。
当∣x∣≤1|x|≤1∣x∣≤1时,可通过不等式1+x≤ex≤1+x+x21+x≤e^x≤1+x+x^21+x≤ex≤1+x+x2来近似估计exe^xex的值。当x→0x→0x→0时,用1+x1+x1+x来估计exe^xex的近似值是足够精确的。
对所有实数xxx,有limn→∞(1+xn)n=exlim_{n→∞}(1+\frac{x}{n})^n=e^xlimn→∞(1+nx)n=ex。
5. 对数函数
本书约定下面的记号:
lg n=log2n (以2为底的对数){\rm lg}\ n={\rm log}_2n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (以2为底的对数)lg n=log2n (以2为底的对数)
ln n=logen (自然对数){\rm ln}\ n={\rm log}_e n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (自然对数)ln n=logen (自然对数)
lgkn=(lg n)k (对数的幂){\rm lg}^k n=({\rm lg}\ n)^k\ \ \ \ \ \ \ \ \ \ \ \ (对数的幂)lgkn=(lg n)k (对数的幂)
lg lg n=lg(lg n) (复合对数){\rm lg\ lg}\ n={\rm lg}({\rm lg}\ n)\ \ \ \ \ \ \ (复合对数)lg lg n=lg(lg n) (复合对数)
(1) 对数函数基本性质
对所有实数a>0a > 0a>0、b>0b > 0b>0、c>0c > 0c>0和nnn,以下等式成立
a=blogbaa=b^{{\rm log}_ba}a=blogba
logc(ab)=logca+logcb{\rm log}_c(ab)={\rm log}_c a+{\rm log}_c blogc(ab)=logca+logcb
logban=nlogba{\rm log}_ba^n=n{\rm log}_balogban=nlogba
logba=(logca)/(logcb){\rm log}_ba=({\rm log}_ca)/({\rm log}_cb)logba=(logca)/(logcb)
logb(1/a)=−logba{\rm log}_b(1/a)=-{\rm log}_balogb(1/a)=−logba
logba=1logab{\rm log}_ba=\frac{1}{{\rm log}_ab}logba=logab1
alogbc=clogbaa^{{\rm log}_bc}=c^{{\rm log}_ba}alogbc=clogba
(2) 当∣x∣<1|x|<1∣x∣<1时,ln(1+x){\rm ln}(1+x)ln(1+x)有级数展开
ln(1+x)=x−x22+x33−x44+x55−⋯{\rm ln}(1+x)=x-\frac{x^2}{2}+\frac{x^3}{3}-\frac{x^4}{4}+\frac{x^5}{5}-⋯ln(1+x)=x−2x2+3x3−4x4+5x5−⋯
(3) 对于x>−1x > -1x>−1,还有以下不等式
x1+x≤ln(1+x)≤x\frac{x}{1+x}≤{\rm ln}(1+x)≤x1+xx≤ln(1+x)≤x
(4) 如果对某个常量kkk,有f(n)=O(lgkn)f(n)=O({\rm lg}^kn)f(n)=O(lgkn),则称函数f(n)f(n)f(n)是多对数有界的。
(5) 多对数函数与多项式函数比较
给定一个多对数函数f(n)=lgbnf(n) = {\rm lg}^bnf(n)=lgbn,一个多项式函数g(n)=nag(n) = n^ag(n)=na (其中a>0a > 0a>0),有limn→∞lgbnna=0lim_{n→∞}\frac{{\rm lg}^bn}{n^a}=0limn→∞nalgbn=0。据此可得,lgbn=o(na){\rm lg}^bn = o(n^a)lgbn=o(na),这说明任意渐近正的多项式函数都比任意多对数函数增长要快。
6. 阶乘
(1) 斯特林公式

(2) 以下渐近表达式成立
n!=o(nn)n!=o(n^n)n!=o(nn)
n!=ω(2n)n!=ω(2^n)n!=ω(2n)
lg(n!)=Θ(nlgn){\rm lg}(n!)=Θ(n{\rm lg}n)lg(n!)=Θ(nlgn)
(3) 对所有n≥1n ≥ 1n≥1,以下等式也成立

其中,112n+1<αn<112n\frac{1}{12n+1}<α_n<\frac{1}{12n}12n+11<αn<12n1。
7. 多重函数
用记号f(i)(n)f^{(i)}(n)f(i)(n)表示函数f(n)f(n)f(n)重复iii次作用于一个初值nnn上。f(i)(n)f^{(i)}(n)f(i)(n)可以按照如下方式递归地定义。

例如,若f(n)=2nf(n)=2nf(n)=2n,则f(i)(n)=2inf^{(i)}(n)=2^i nf(i)(n)=2in。
8. 多重对数函数
定义多重对数函数如下:
lg∗n=min{i≥0:lg(i)n≤1}{\rm lg}^* n=min\{i≥0: {\rm lg}^{(i)}n≤1\}lg∗n=min{i≥0:lg(i)n≤1}
多重对数函数的意义是:对一个初值nnn最多可以连续应用多少次对数函数,才能使得最后结果小于或等于111。对初值nnn最多应用了对数函数的次数,就是多重对数函数的输出。
多重对数函数是一个增长极其缓慢的函数。
lg∗2=1{\rm lg}^*2=1lg∗2=1
lg∗4=2{\rm lg}^*4=2lg∗4=2
lg∗16=3{\rm lg}^*16=3lg∗16=3
lg∗65536=4{\rm lg}^*65536=4lg∗65536=4
lg∗(265536)=5{\rm lg}^*(2^{65536})=5lg∗(265536)=5
9. 斐波那契数
斐波那契数F(n)F(n)F(n)按照以下递归式来定义:

斐波那契数与黄金分割率φφφ及其共轭数φ^\hat{φ}φ^有关。φφφ和φ^\hat{φ}φ^是一元二次方程x2=x+1x^2 = x+1x2=x+1的根,它们的值为
φ=(1+5)/2=1.61803⋯φ=(1+\sqrt{5})/2=1.61803⋯φ=(1+5)/2=1.61803⋯
φ^=(1−5)/2=−0.61803⋯\hat{φ}=(1-\sqrt{5})/2=-0.61803⋯φ^=(1−5)/2=−0.61803⋯
斐波那契数与φφφ和φ^\hat{φ}φ^的关系如下:

也就是说斐波那契数F(n)F(n)F(n)等于φn/5φ^n/\sqrt{5}φn/5舍入到最近的整数。因此,斐波那契数以指数形式增长。
练习
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)•g(n)f(n)•g(n)是单调递增的。
略
3.2-2 证明等式(3.16)。
alogbc=clogba (3.16)a^{{\rm log}_bc}=c^{{\rm log}_ba}\ \ \ \ \ \ \ \ \ \ \ \ (3.16)alogbc=clogba (3.16)
解
对等式两边取对数。
左边:logb(alogbc)=logba∙logbc{\rm log}_b(a^{{\rm log}_bc})={\rm log}_ba∙{\rm log}_bclogb(alogbc)=logba∙logbc
右边:logb(clogba)=logba∙logbc{\rm log}_b(c^{{\rm log}_ba})={\rm log}_ba∙{\rm log}_bclogb(clogba)=logba∙logbc
可以看到,取对数后,等式两边完全相等。故alogbc=clogbaa^{{\rm log}_bc}=c^{{\rm log}_b a}alogbc=clogba成立。
3.2-3 证明等式(3.19)。并证明n!=ω(2n)且n!=o(nn)n!=ω(2^n )且n!=o(n^n )n!=ω(2n)且n!=o(nn)。
lg(n!)=Θ(nlgn) (3.19){\rm lg}(n!)=Θ(n{\rm lg}n)\ \ \ \ \ \ \ \ \ \ \ \ (3.19)lg(n!)=Θ(nlgn) (3.19)
解
(1) 证明lg(n!)=Θ(nlgn){\rm lg}(n!)=Θ(n{\rm lg}n)lg(n!)=Θ(nlgn)
利用斯特林公式,可以得到

上式中,高阶项为nlgnnlgnnlgn,忽略其他低阶项,可得lg(n!)=Θ(nlgn){\rm lg}(n!)=Θ(n{\rm lg}n)lg(n!)=Θ(nlgn)。
(2) 证明n!=ω(2n)n!=ω(2^n)n!=ω(2n)
仍然采用斯特林公式。

故n!=ω(2n)n!=ω(2^n )n!=ω(2n)成立。
(3) 证明n!=o(nn)n!=o(n^n)n!=o(nn)

故n!=o(nn)n!=o(n^n )n!=o(nn)成立。补充一下,上式的极限等于000,是因为“““任意底大于111的指数函数比任意多项式函数增长得快”””,多项式函数n1/2n^{1/2}n1/2是分子,而指数函数ene^nen是分母。
3.2-4 函数⌈lgn⌉!⌈{\rm lg}n⌉!⌈lgn⌉!多项式有界吗?函数⌈lglgn⌉!⌈{\rm lg lg}n⌉!⌈lglgn⌉!多项式有界吗?
解
对于题目中的222个函数,要直接判断它们是否多项式有界很困难。我们不妨考察任意一个多项式有界的函数f(n)f(n)f(n),即f(n)=O(nk)f(n) = O(n^k)f(n)=O(nk),其中kkk为一个大于000的常量。根据OOO记号的定义,存在正常量n0n_0n0和ccc,使得对所有n≥n0n ≥ n_0n≥n0,有
f(n)≤cnkf(n)≤cn^kf(n)≤cnk
对这个不等式两边取对数,得到
lg(f(n))≤lg(cnk)=lgc+klgn{\rm lg}(f(n))≤{\rm lg}(cn^k )={\rm lg}c+k{\rm lg}nlg(f(n))≤lg(cnk)=lgc+klgn。
可以取一个足够大的常量c′c'c′,就可使得lgc+klgn≤c′lgn{\rm lg}c+k{\rm lg}n≤c'{\rm lg}nlgc+klgn≤c′lgn对所有n≥n0n ≥ n_0n≥n0成立,即lg(f(n))≤c′lgn{\rm lg}(f(n))≤c'{\rm lg}nlg(f(n))≤c′lgn对所有n≥n0n ≥ n_0n≥n0成立。由此可得lg(f(n))=O(lgn){\rm lg}(f(n))=O({\rm lg}n)lg(f(n))=O(lgn)。
根据以上分析,可以得出以下推论。即如果一个函数f(n)f(n)f(n)多项式有界,那么f(n)f(n)f(n)的对数一定有渐近上界O(lgn)O({\rm lg}n)O(lgn)。
f(n)=O(nk) ⇒ lg(f(n))=O(lgn)f(n)=O(n^k)\ \ \ \ \ ⇒\ \ \ \ \ {\rm lg}(f(n))=O({\rm lg}n)f(n)=O(nk) ⇒ lg(f(n))=O(lgn)
那么上述推论反过来成不成立呢?即由lg(f(n))=O(lgn){\rm lg}(f(n))=O({\rm lg}n)lg(f(n))=O(lgn),是否可以得出f(n)=O(nk)f(n)=O(n^k)f(n)=O(nk)?
根据lg(f(n))=O(lgn){\rm lg}(f(n))=O({\rm lg}n)lg(f(n))=O(lgn),存在正常量n0n_0n0和kkk,使得对所有n≥n0n ≥ n_0n≥n0,有lg(f(n))≤k∙lgn=lgnk{\rm lg}(f(n))≤k∙{\rm lg}n={\rm lg}n^klg(f(n))≤k∙lgn=lgnk。由此可得f(n)≤nkf(n)≤n^kf(n)≤nk对所有n≥n0n ≥ n_0n≥n0都成立,这说明f(n)=O(nk)f(n)=O(n^k)f(n)=O(nk)。于是下面的推论也成立。
lg(f(n))=O(lgn) ⇒ f(n)=O(nk){\rm lg}(f(n))=O({\rm lg}n)\ \ \ \ \ ⇒\ \ \ \ \ f(n)=O(n^k)lg(f(n))=O(lgn) ⇒ f(n)=O(nk)
综合以上分析,f(n)=O(nk)f(n)=O(n^k )f(n)=O(nk)和lg(f(n))=O(lgn){\rm lg}(f(n))=O({\rm lg}n)lg(f(n))=O(lgn)是等价的,即
f(n)=O(nk) ⇔ lg(f(n))=O(lgn)f(n)=O(n^k )\ \ \ \ \ ⇔\ \ \ \ \ {\rm lg}(f(n))=O({\rm lg}n)f(n)=O(nk) ⇔ lg(f(n))=O(lgn)
下面我们用这个结论来判断函数f1(n)=⌈lgn⌉!f_1 (n)=⌈{\rm lg}n⌉!f1(n)=⌈lgn⌉!和f2(n)=⌈lglgn⌉!f_2 (n)=⌈{\rm lg lg}n⌉!f2(n)=⌈lglgn⌉!是否多项式有界。
(1) f1(n)=⌈lgn⌉!f_1 (n)=⌈{\rm lg}n⌉!f1(n)=⌈lgn⌉!
对函数f1(n)f_1 (n)f1(n)取对数,lg(f1(n))=lg(⌈lgn⌉!){\rm lg}(f_1 (n))={\rm lg}(⌈{\rm lg}n⌉!)lg(f1(n))=lg(⌈lgn⌉!)。根据3.2节的结论lg(n!)=Θ(nlgn){\rm lg}(n!)=Θ(n{\rm lg}n)lg(n!)=Θ(nlgn),我们可以得到
lg(⌈lgn⌉!)=Θ(⌈lgn⌉∙lg(⌈lgn⌉))=Θ(lgn∙lglgn){\rm lg}(⌈{\rm lg}n⌉!)=Θ(⌈{\rm lg}n⌉∙{\rm lg}(⌈{\rm lg}n⌉))=Θ({\rm lg}n∙{\rm lg lg}n)lg(⌈lgn⌉!)=Θ(⌈lgn⌉∙lg(⌈lgn⌉))=Θ(lgn∙lglgn)
显然Θ(lgn∙lglgn)Θ({\rm lg}n∙{\rm lg lg}n)Θ(lgn∙lglgn)比Θ(lgn)Θ({\rm lg}n)Θ(lgn)增长要快,所以O(lgn)O({\rm lg}n)O(lgn)并不是Θ(lgn∙lglgn)Θ({\rm lg}n∙{\rm lg lg}n)Θ(lgn∙lglgn)的渐近上界,即lg(⌈lgn⌉!)≠O(lgn){\rm lg}(⌈{\rm lg}n⌉!)≠O({\rm lg}n)lg(⌈lgn⌉!)̸=O(lgn)。根据上文的推论,有⌈lgn⌉!≠O(nk)⌈{\rm lg}n⌉!≠O(n^k)⌈lgn⌉!̸=O(nk),故⌈lgn⌉!⌈{\rm lg}n⌉!⌈lgn⌉!并不是多项式有界。
(2) f2(n)=⌈lglgn⌉!f_2 (n)=⌈{\rm lg lg}n⌉!f2(n)=⌈lglgn⌉!
对函数f2(n)f_2 (n)f2(n)取对数,lg(f2(n))=lg(⌈lglgn⌉!){\rm lg}(f_2 (n))={\rm lg}(⌈{\rm lg lg}n⌉!)lg(f2(n))=lg(⌈lglgn⌉!)。同样根据3.2节的结论lg(n!)=Θ(nlgn){\rm lg}(n!)=Θ(n{\rm lg}n)lg(n!)=Θ(nlgn),我们可以得到
lg(⌈lglgn⌉!)=Θ(⌈lglgn⌉∙lg(⌈lglgn⌉))=Θ(lglgn∙lglglgn){\rm lg}(⌈{\rm lg lg}n⌉!)=Θ(⌈{\rm lg lg}n⌉∙{\rm lg}(⌈{\rm lg lg}n⌉))=Θ({\rm lg lg}n∙{\rm lg lg lg}n)lg(⌈lglgn⌉!)=Θ(⌈lglgn⌉∙lg(⌈lglgn⌉))=Θ(lglgn∙lglglgn)
这说明存在正常量ccc和n0n_0n0,使得对所有n≥n0n ≥ n_0n≥n0,有lg(⌈lglgn⌉!)≤c∙lglgn∙lglglgn{\rm lg}(⌈{\rm lg lg}n⌉!)≤c∙{\rm lg lg}n∙{\rm lg lg lg}nlg(⌈lglgn⌉!)≤c∙lglgn∙lglglgn。因为lglglgn≤lglgn{\rm lg lg lg}n≤{\rm lg lg}nlglglgn≤lglgn,所以又有lg(⌈lglgn⌉!)≤c∙(lglgn)2{\rm lg}(⌈{\rm lg lg}n⌉!)≤c∙({\rm lg lg}n)^2lg(⌈lglgn⌉!)≤c∙(lglgn)2。我们令m=lgnm={\rm lg}nm=lgn,有lg(⌈lglgn⌉!)≤c∙lg2m{\rm lg}(⌈{\rm lg lg}n⌉!)≤c∙{\rm lg}^2 mlg(⌈lglgn⌉!)≤c∙lg2m。利用3.2节的另一个结论“““任意多项式函数都比任意多对数函数增长要快”””,我们有
lg(⌈lglgn⌉!)≤c∙lg2m=O(m)=O(lgn){\rm lg}(⌈{\rm lg lg}n⌉!)≤c∙{\rm lg}^2 m=O(m)=O({\rm lg}n)lg(⌈lglgn⌉!)≤c∙lg2m=O(m)=O(lgn)。
根据上文的推论,有⌈lglgn⌉!=O(nk)⌈{\rm lg lg}n⌉!=O(n^k )⌈lglgn⌉!=O(nk),即⌈lglgn⌉!⌈{\rm lg lg}n⌉!⌈lglgn⌉!是多项式有界的。
3.2-5 如下两个函数中,哪一个渐近更大些:lg(lg∗n){\rm lg}({\rm lg}^*n)lg(lg∗n)还是lg∗(lgn){\rm lg}^* ({\rm lg}n)lg∗(lgn)?
解
先分析lg∗(lgn){\rm lg}^* ({\rm lg}n)lg∗(lgn)。lg∗{\rm lg}^*lg∗的定义是连续应用对数函数的次数,由于lgn{\rm lg}nlgn已经对nnn应用了一次对数函数,故对lgn{\rm lg}nlgn应用lg∗{\rm lg}^*lg∗,应当比对nnn应用lg∗{\rm lg}^*lg∗要小111,即lg∗(lgn)=lg∗n−1{\rm lg}^* ({\rm lg}n)={\rm lg}^* n-1lg∗(lgn)=lg∗n−1。
令m=lg∗nm={\rm lg}^* nm=lg∗n,那么lg∗(lgn)=lg∗n−1=m−1{\rm lg}^* ({\rm lg}n)={\rm lg}^* n-1=m-1lg∗(lgn)=lg∗n−1=m−1,并且lg(lg∗n)=lgm{\rm lg}({\rm lg}^* n)={\rm lg}mlg(lg∗n)=lgm。利用3.2节的结论“““任意多项式函数都比任意多对数函数增长要快”””,可以得出m−1m-1m−1比lgm{\rm lg}mlgm增长要快,这说明lg∗(lgn){\rm lg}^* ({\rm lg}n)lg∗(lgn)比lg(lg∗n){\rm lg} ({\rm lg^*}n)lg(lg∗n)渐近更大。
3.2-6 证明:黄金分割率φφφ及其共轭数φ^\hat{φ}φ^都满足方程x2=x+1x^2 = x + 1x2=x+1。
略
3.2-7 用归纳法证明:第iii个斐波那契数满足等式

其中,φφφ是黄金分割率且φ^\hat{φ}φ^是其共轭数。
解
先考虑初始情况i=0i = 0i=0和i=1i = 1i=1。

故Fi=φi−φ^i5F_i=\frac{φ^i-\hat{φ}^i}{\sqrt{5}}Fi=5φi−φ^i对初始情况i=0i = 0i=0和i=1i = 1i=1成立。
现在假设等式对0,1,…,i−10, 1, …, i-10,1,…,i−1都成立,于是有

综上所述,Fi=φi−φ^i5F_i=\frac{φ^i-\hat{φ}^i}{\sqrt{5}}Fi=5φi−φ^i对所有i≥0i ≥ 0i≥0的整数都成立。
3.2-8 证明:klnk=Θ(n)k{\rm ln}k=Θ(n)klnk=Θ(n)蕴含着k=Θ(n/lnn)k=Θ(n/{\rm ln}n)k=Θ(n/lnn)。
解
klnk=Θ(n)k{\rm ln}k=Θ(n)klnk=Θ(n)意味着存在正常量c1c_1c1、c2c_2c2和n0n_0n0,使得当n≥n0n ≥ n_0n≥n0时,有

对这个不等式取以e为底的指数,得到

即

(1) 首先证明当nnn足够大时,有k<nk < nk<n
注意,这里的kkk应当理解为一个自变量为nnn的函数,而不是一个常数。采用反证法,假设存在k≥nk ≥ nk≥n。由于ec2e^{c_2}ec2是常数,当nnn足够大时,一定会有n>ec2n>e^{c_2}n>ec2。我们已经假设存在k≥nk ≥ nk≥n,于是有ek+k≥en+n>en+ec2e^k+k≥e^n+n>e^n+e^{c_2}ek+k≥en+n>en+ec2,这与上面的不等式ek+k≤ec2+ene^k+k≤e^{c_2 }+e^nek+k≤ec2+en矛盾,所以假设不成立,故当nnn足够大时,一定有k<nk < nk<n。
(2) 证明k=Ω(n/lnn)k=Ω(n/{\rm ln}n)k=Ω(n/lnn)
现在利用(1)的结论来证明k=Ω(n/lnn)k=Ω(n/{\rm ln}n)k=Ω(n/lnn)。根据不等式①,当nnn足够大时,有c1n≤klnkc_1 n≤k{\rm ln}kc1n≤klnk。根据(1)的结论,当nnn足够大时,有k<nk < nk<n。所以当nnn足够大时,有

故k=Ω(n/lnn)k=Ω(n/{\rm ln}n)k=Ω(n/lnn)成立。
(2) 证明k=O(n/lnn)k=O(n/{\rm ln}n)k=O(n/lnn)
以下分析都建立在nnn足够大的前提下。将不等式①写为一个不等式组

将不等式④两边取对数,得到

即

将不等式⑤和⑥左边两边分别相乘得到

即

因为lnlnk<lnk{\rm lnln}k< {\rm ln}klnlnk<lnk,所以有lnlnklnk<1\frac {{\rm lnln}k}{{\rm ln}k}<1lnklnlnk<1。而lnc1lnk>0\frac{{\rm ln}c_1}{{\rm ln}k}>0lnklnc1>0显然成立。所以有

将不等式⑧代入不等式⑦中,可以得到

由此可见,当nnn足够大时,有k<2c2n/lnnk<2c_2n/{\rm ln}nk<2c2n/lnn。故k=O(n/lnn)k=O(n/{\rm ln}n)k=O(n/lnn)成立。
综上所述,klnk=Θ(n)k{\rm ln}k=Θ(n)klnk=Θ(n)意味着k=Θ(n/lnn)k=Θ(n/{\rm ln}n)k=Θ(n/lnn)。
本文详细解析了数学中的各类符号及函数,包括向下取整、向上取整、模运算、多项式、指数函数、对数函数、阶乘、多重函数等,并通过练习题帮助读者加深理解。
5787

被折叠的 条评论
为什么被折叠?



