算法导论 — 3.2 标准记号与常用函数

本文详细解析了数学中的各类符号及函数,包括向下取整、向上取整、模运算、多项式、指数函数、对数函数、阶乘、多重函数等,并通过练习题帮助读者加深理解。

笔记

1. 向下取整与向上取整
  ⌊x⌋⌊x⌋x是对xxx向下取整,表示小于或等于xxx的最大整数。⌈x⌉⌈x⌉x是对xxx向上取整,表示大于或等于xxx的最小整数。向下取整与向上取整具有以下规律:
  (1) 对所有实数xxx,有x−1&lt;⌊x⌋≤x≤⌈x⌉&lt;x+1x-1&lt;⌊x⌋≤x≤⌈x⌉&lt;x+1x1<xxx<x+1
  (2) 对任意整数nnn,有⌈n/2⌉+⌊n/2⌋=n⌈n/2⌉+⌊n/2⌋=nn/2+n/2=n
  (3) 对任意实数x≥0x ≥ 0x0和整数a,b&gt;0a, b &gt; 0a,b>0,有
    ⌈⌈x/a⌉b⌉=⌈xab⌉⌈\frac{⌈x/a⌉}{b}⌉=⌈\frac{x}{ab}⌉bx/a=abx
    
    ⌊⌊x/a⌋b⌋=⌊xab⌋⌊\frac{⌊x/a⌋}{b}⌋=⌊\frac{x}{ab}⌋bx/a=abx
    
    ⌈ab⌉≤a+(b−1)b⌈\frac{a}{b}⌉≤\frac{a+(b-1)}{b}baba+(b1)
    
    ⌊ab⌋≥a−(b−1)b⌊\frac{a}{b}⌋≥\frac{a-(b-1)}{b}baba(b1)
  (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=ana/n
  模运算的结果满足0≤a mod n&lt;n0≤a\ {\rm mod}\ n&lt;n0a mod n<n
  如果a mod n=b mod na\ {\rm mod}\ n=b\ {\rm mod}\ na mod n=b mod n,则说明aaabbb除以nnn的余数相同,记为a≡b(mod n)a≡b({\rm mod}\ n)ab(mod n),并称模nnnaaa等价于bbb。模运算具有以下性质:
  a≡b(mod n)     ⇔     n是b−a的一个因子a≡b({\rm mod}\ n)\ \ \ \ \ ⇔\ \ \ \ \ n是b-a的一个因子ab(mod n)          nba
  
   3. 多项式
   给定一个非负整数dddnnnddd次多项式为
   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&gt;0a_d &gt; 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&gt;0a &gt; 0a>0mmmnnn,以下等式成立
      a0=1a^0=1a0=1
     
      a1=aa^1=aa1=a
     
      a−1=1aa^{-1}=\frac{1}{a}a1=a1
     
      (am)n=amn(a^m )^n=a^{mn}(am)n=amn
     
      am∙an=am+na^m∙a^n=a^{m+n}aman=am+n
     
   (2) 指数函数与多项式函数比较
   给定一个指数函数f(n)=anf(n) = a^nf(n)=an (其中a&gt;1a &gt; 1a>1),一个多项式函数g(n)=nbg(n) = n^bg(n)=nb,有limn→∞⁡nban=0lim_{n→∞}\frac {⁡n^b}{a^n}=0limnannb=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=0i!xi
     
   对所有实数xxx,有ex≥1+xe^x≥1+xex1+x成立。只有当x=0x = 0x=0时,等号才成立。
   当∣x∣≤1|x|≤1x1时,可通过不等式1+x≤ex≤1+x+x21+x≤e^x≤1+x+x^21+xex1+x+x2来近似估计exe^xex的值。当x→0x→0x0时,用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&gt;0a &gt; 0a>0b&gt;0b &gt; 0b>0c&gt;0c &gt; 0c>0nnn,以下等式成立
      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∣&lt;1|x|&lt;1x<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)=x2x2+3x34x4+5x5
     
   (3) 对于x&gt;−1x &gt; -1x>1,还有以下不等式
      x1+x≤ln⁡(1+x)≤x\frac{x}{1+x}≤{\rm ln}⁡(1+x)≤x1+xxln(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&gt;0a &gt; 0a>0),有limn→∞⁡lgbnna=0lim_{n→∞}⁡\frac{{\rm lg}^bn}{n^a}=0limnnalgbn=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 ≥ 1n1,以下等式也成立
    在这里插入图片描述
  其中,112n+1&lt;αn&lt;112n\frac{1}{12n+1}&lt;α_n&lt;\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\}lgn=min{i0:lg(i)n1}
  多重对数函数的意义是:对一个初值nnn最多可以连续应用多少次对数函数,才能使得最后结果小于或等于111。对初值nnn最多应用了对数函数的次数,就是多重对数函数的输出。
  多重对数函数是一个增长极其缓慢的函数。
    lg∗2=1{\rm lg}^*2=1lg2=1
    lg∗4=2{\rm lg}^*4=2lg4=2
    lg∗16=3{\rm lg}^*16=3lg16=3
    lg∗65536=4{\rm lg}^*65536=4lg65536=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⋯φ^=(15)/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)=logbalogbc
   右边:logb(clogba)=logba∙logbc{\rm log}_b(c^{{\rm log}_ba})={\rm log}_ba∙{\rm log}_bclogb(clogba)=logbalogbc
   可以看到,取对数后,等式两边完全相等。故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_0n0ccc,使得对所有n≥n0n ≥ n_0nn0,有
      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&#x27;c,就可使得lgc+klgn≤c′lgn{\rm lg}c+k{\rm lg}n≤c&#x27;{\rm lg}nlgc+klgnclgn对所有n≥n0n ≥ n_0nn0成立,即lg(f(n))≤c′lgn{\rm lg}(f(n))≤c&#x27;{\rm lg}nlg(f(n))clgn对所有n≥n0n ≥ n_0nn0成立。由此可得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_0n0kkk,使得对所有n≥n0n ≥ n_0nn0,有lg(f(n))≤k∙lgn=lgnk{\rm lg}(f(n))≤k∙{\rm lg}n={\rm lg}n^klg(f(n))klgn=lgnk。由此可得f(n)≤nkf(n)≤n^kf(n)nk对所有n≥n0n ≥ n_0nn0都成立,这说明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!)=Θ(lgnlg(lgn))=Θ(lgnlglgn)
   显然Θ(lgn∙lglgn)Θ({\rm lg}n∙{\rm lg lg}n)Θ(lgnlglgn)Θ(lgn)Θ({\rm lg}n)Θ(lgn)增长要快,所以O(lgn)O({\rm lg}n)O(lgn)并不是Θ(lgn∙lglgn)Θ({\rm lg}n∙{\rm lg lg}n)Θ(lgnlglgn)的渐近上界,即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!)=Θ(lglgnlg(lglgn))=Θ(lglgnlglglgn)
   这说明存在正常量cccn0n_0n0,使得对所有n≥n0n ≥ n_0nn0,有lg(⌈lglgn⌉!)≤c∙lglgn∙lglglgn{\rm lg}(⌈{\rm lg lg}n⌉!)≤c∙{\rm lg lg}n∙{\rm lg lg lg}nlg(lglgn!)clglgnlglglgn。因为lglglgn≤lglgn{\rm lg lg lg}n≤{\rm lg lg}nlglglgnlglgn,所以又有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!)clg2m。利用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!)clg2m=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(lgn)还是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)=lgn1
   令m=lg∗nm={\rm lg}^* nm=lgn,那么lg∗(lgn)=lg∗n−1=m−1{\rm lg}^* ({\rm lg}n)={\rm lg}^* n-1=m-1lg(lgn)=lgn1=m1,并且lg(lg∗n)=lgm{\rm lg}({\rm lg}^* n)={\rm lg}mlg(lgn)=lgm。利用3.2节的结论““任意多项式函数都比任意多对数函数增长要快””,可以得出m−1m-1m1lgm{\rm lg}mlgm增长要快,这说明lg∗(lgn){\rm lg}^* ({\rm lg}n)lg(lgn)lg(lg∗n){\rm lg} ({\rm lg^*}n)lg(lgn)渐近更大。

3.2-6 证明:黄金分割率φφφ及其共轭数φ^\hat{φ}φ^都满足方程x2=x+1x^2 = x + 1x2=x+1
  
  
3.2-7 用归纳法证明:第iii个斐波那契数满足等式
      在这里插入图片描述
   其中,φφφ是黄金分割率且φ^\hat{φ}φ^是其共轭数。
  
   先考虑初始情况i=0i = 0i=0i=1i = 1i=1
      在这里插入图片描述
   故Fi=φi−φ^i5F_i=\frac{φ^i-\hat{φ}^i}{\sqrt{5}}Fi=5φiφ^i对初始情况i=0i = 0i=0i=1i = 1i=1成立。
   现在假设等式对0,1,…,i−10, 1, …, i-10,1,,i1都成立,于是有
      在这里插入图片描述
   综上所述,Fi=φi−φ^i5F_i=\frac{φ^i-\hat{φ}^i}{\sqrt{5}}Fi=5φiφ^i对所有i≥0i ≥ 0i0的整数都成立。

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_1c1c2c_2c2n0n_0n0,使得当n≥n0n ≥ n_0nn0时,有
      在这里插入图片描述
   对这个不等式取以e为底的指数,得到
      在这里插入图片描述
   即
     在这里插入图片描述
   (1) 首先证明当nnn足够大时,有k&lt;nk &lt; nk<n
   注意,这里的kkk应当理解为一个自变量为nnn的函数,而不是一个常数。采用反证法,假设存在k≥nk ≥ nkn。由于ec2e^{c_2}ec2是常数,当nnn足够大时,一定会有n&gt;ec2n&gt;e^{c_2}n>ec2。我们已经假设存在k≥nk ≥ nkn,于是有ek+k≥en+n&gt;en+ec2e^k+k≥e^n+n&gt;e^n+e^{c_2}ek+ken+n>en+ec2,这与上面的不等式ek+k≤ec2+ene^k+k≤e^{c_2 }+e^nek+kec2+en矛盾,所以假设不成立,故当nnn足够大时,一定有k&lt;nk &lt; 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}kc1nklnk。根据(1)的结论,当nnn足够大时,有k&lt;nk &lt; 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&lt;lnk{\rm lnln}k&lt; {\rm ln}klnlnk<lnk,所以有lnlnklnk&lt;1\frac {{\rm lnln}k}{{\rm ln}k}&lt;1lnklnlnk<1。而lnc1lnk&gt;0\frac{{\rm ln}c_1}{{\rm ln}k}&gt;0lnklnc1>0显然成立。所以有
     在这里插入图片描述
   将不等式⑧代入不等式⑦中,可以得到
      在这里插入图片描述
   由此可见,当nnn足够大时,有k&lt;2c2n/lnnk&lt;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)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值