思考题4-1

a) a=2,b=2,f(n)=n4,nlogba=nlog22=na=2,b=2,f(n)=n^4,n^{\log_ba}=n^{\log_22}=n,应用主定理 3 得 T(n)=Θ(n4)T(n)=\Theta(n^4);

b) a=1,b=10/7,f(n)=n,nlogba=nlog1071=1a=1,b=10/7,f(n)=n,n^{\log_ba}=n^{\log_{\frac{10}{7}}1}=1,应用主定理 3 得 T(n)=Θ(n)T(n)=\Theta(n);

c) a=16,b=4,f(n)=n2,nlogba=nlog416=n2a=16,b=4,f(n)=n^2,n^{\log_ba}=n^{\log_{4}{16}}=n^2,应用主定理 2 得 T(n)=Θ(n2lgn)T(n)=\Theta(n^2\lg n);

d) a=7,b=3,f(n)=n2,nlogba=nlog37≤n2a=7,b=3,f(n)=n^2,n^{\log_ba}=n^{\log_37}\le n^2,应用主定理 3 得 T(n)=Θ(n2)T(n)=\Theta(n^2);

e) a=7,b=2,f(n)=n2,nlogba=nlog27≥n2a=7,b=2,f(n)=n^2,n^{\log_ba}=n^{\log_27}\ge n^2,应用主定理 1 得 T(n)=Θ(nlog27)T(n)=\Theta(n^{\log_27});

f) a=2,b=4,f(n)=n−−√,nlogba=nlog42=n−−√a=2,b=4,f(n)=\sqrt n,n^{\log_ba}=n^{\log_42}=\sqrt n,应用主定理 2 得 T(n)=Θ(n−−√lgn)T(n)=\Theta(\sqrt n\lg n);

g) 直接递归推导:

T(n)=n2+T(n−2)=n2+(n−2)2+T(n−4)=∑i=0n/2(n−2i)2=Θ(n3)

\begin{align} T(n) &= n^2 + T(n - 2) = n^2 + (n - 2)^2 + T(n - 4)\\ &= \sum_{i=0}^{n/2}(n -2i)^2 = \Theta(n^3) \end{align}

思考题4-2

a) 1、2、3 三种的递归式分别为:T(n)=T(n/2)+c,T(n)=T(n/2)+cN,T(n)=T(n/2)+cnT(n)=T(n/2)+c,T(n)=T(n/2)+cN,T(n)=T(n/2)+cn。
由此得到它们的上界分别是 Θ(lgn),Θ(nlgn),Θ(n)\Theta(\lg n),\Theta(n\lg n),\Theta(n)(1、3使用主定理,2使用推导即可)。

T(n)=T(n/2)+cN=2cN+T(n/4)=3cN+T(n/8)=∑i=0lgn−1(2icN/2i)=cNlgn=Θ(nlgn)

\begin{align} T(n) &= T(n/2) + cN = 2cN + T(n/4) \\&= 3cN + T(n/8) = \sum_{i=0}^{\lg{n}-1}(2^icN/2^i) = cN\lg{n}\\& = \Theta(n\lg{n}) \end{align}

b) 1 的递归式:T(n)=2T(n/2)+cn=Θ(nlgn)T(n) = 2T(n/2) + cn = \Theta(n\lg{n}) (主定理)
2 的递归式:

T(n)=2T(n/2)+cn+2N=4N+cn+2c(n/2)+4T(n/4)=∑i=0lgn−1(cn+2iN)=∑i=0lgn−1cn+N∑i=0lgn−12i=cnlgn+N2lgn−12−1=cnlgn+nN−N=Θ(nN)=Θ(n2)

\begin{align} T(n) &= 2T(n/2) + cn + 2N = 4N + cn + 2c(n/2) + 4T(n/4)\\&= \sum_{i=0}^{\lg{n}-1}(cn + 2^iN)\\&= \sum_{i=0}^{\lg{n}-1}cn + N\sum_{i=0}^{\lg{n}-1}2^i\\& = cn\lg{n} + N\frac{2^{\lg{n}} - 1}{2-1}\\& = cn\lg{n} + nN - N\\& = \Theta(nN) \\ &= \Theta(n^2) \end{align}
3 的递归式: T(n)=2T(n/2)+cn+2n/2=2T(n/2)+(c+1)n=Θ(nlgn)T(n) = 2T(n/2) + cn + 2n/2 = 2T(n/2) + (c+1)n = \Theta(n\lg{n}) (主定理)

思考题4-3

a) nlogba=nlog34n^{\log_ba}=n^{\log_34},应用主定理 1 得:T(n)=Θ(nlog34)T(n)=\Theta(n^{\log_34});

b) nlogba=nlog33=nn^{\log_ba}=n^{\log_33}=n,不能用主定理,利用递归方法可求得:Θ(nlglgn)\Theta(n\lg{\lg n});

c) nlogba=nlog24=n2n^{\log_ba}=n^{\log_24}=n^2,应用主定理 3 得:T(n)=Θ(n2.5)T(n)=\Theta(n^{2.5});

d) 忽略-2,nlogba=nlog33=nn^{\log_ba}=n^{\log_33}=n,应用主定理 2 得:T(n)=Θ(nlgn)T(n)=\Theta(n\lg n);

e) nlogba=nlog22=nn^{\log_ba}=n^{\log_22}=n,类似 b) 可得:Θ(nlglgn)\Theta(n\lg{\lg n});

f) 画出递归树(略),然后猜测 T(n)=Θ(n)T(n)=\Theta(n)。
用代入法验证,先证明上界,猜测 T(n)≤cnT(n)\le cn。

T(n)=T(n/2)+T(n/4)+T(n/8)+n≤cn/2+cn/4+cn/8+n=78cn+n=(1+78c)n≤cn(c≥8)

\begin{align} T(n)&=T(n/2)+T(n/4)+T(n/8)+n\\&\le cn/2+cn/4+cn/8+n\\&=\frac78 cn + n=(1+\frac78c)n\\&\le cn&(c\ge 8) \end{align}
证明下界, T(n)=T(n/2)+T(n/4)+T(n/8)+n≥nT(n)=T(n/2)+T(n/4)+T(n/8)+n\ge n。
综上得 T(n)=Θ(n)T(n)=\Theta(n);

g) T(n)=Θ(lgn)T(n)=\Theta(\lg n)

T(n)=T(n−1)+1/n=1n+1n−1+T(n−2)=1n+1n−1+1n−2+T(n−3)=∑i=0n−11n−i=∑i=1n1i==Θ(lgn)

\begin{align}T(n) &= T(n-1) + 1/n = \frac{1}{n} + \frac{1}{n-1} + T(n-2) \\&= \frac{1}{n} + \frac{1}{n-1} + \frac{1}{n-2} + T(n-3) \\&= \sum_{i=0}^{n-1}\frac{1}{n-i} = \sum_{i=1}^n\frac{1}{i} = \\&= \Theta(\lg{n})\end{align}

h) T(n)=Θ(nlgn)T(n)=\Theta(n\lg{n})

T(n)=lgn+T(n−1)=lgn+lgn−1+T(n−2)==∑i=0n−1lg(n−i)=∑i=1nlgi=lg(n!)=Θ(nlgn)

\begin{align}T(n) &= \lg{n} + T(n-1) = \lg{n} + \lg{n-1} + T(n-2) = \\&= \sum_{i=0}^{n-1}\lg(n - i) = \sum_{i=1}^{n}\lg{i} = \lg(n!) \\&= \Theta(n\lg{n})\end{align}

i) T(n)=Θ(lglgn)T(n)=\Theta(\lg\lg{n})

T(n)=1lgn+1lgn−2+…=∑i=1n/21lg(2i)=∑i=1∞1lgi=Θ(lglgn)

\begin{align}T(n) &= \frac{1}{\lg{n}} + \frac{1}{\lg{n-2}} + \ldots \\&= \sum_{i=1}^{n/2}\frac{1}{\lg(2i)} \\&= \sum_{i=1}^{\infty}\frac{1}{\lg{i}} \\&= \Theta(\lg\lg{n})\end{align}

j) 根据递归树可知,每层的规模都是 n,层数为 lglgn\lg {\lg n},所以为:T(n)=Θ(nlglgn)T(n) = \Theta (n \lg {\lg n})。

思考题4-4

a)

z+zF(z)+z2F(z)=z+z∑i=0∞Fizi+z2∑i=0∞Fizi=z+∑i=0∞Fizi+1+∑i=0∞Fizi+2=z+∑i=2∞(Fi−1+Fi−2)zi=0+z+∑i=2∞Fizi=F(z)

\eqalign { & \quad \mathcal{z + zF(z) + z^2F(z)} \\ & = z + z \sum_{i=0}^{\infty}{F_iz^i} + z^2 \sum_{i=0}^{\infty}{F_iz^i} \\ & = z + \sum_{i=0}^{\infty}{F_iz^{i+1}} + \sum_{i=0}^{\infty}{F_iz^{i+2}} \\ & = z + \sum_{i=2}^{\infty}{(F_{i-1} + F_{i-2})z^i} \\ & = 0 + z + \sum_{i=2}^{\infty}{F_iz^i} \\ & = \mathcal{F(z)}}

b) 由 a) 可得 F(z)=z1−z−z2\mathcal{F(z)} = \frac z{1-z-z^2}。
后面的等式自行化简即可得到,其中 ϕ−ϕ^=5√\phi - \hat\phi = \sqrt5, ϕ+ϕ^=1\phi + \hat\phi = 1 and ϕϕ^=−1\phi\hat\phi = - 1

c)

11−x=∑k=0∞xk当 |x|<1

\frac{1}{1 - x} = \sum_{k=0}^{\infty}x^k \quad\text{当 } |x|

F(n)=15√(11−ϕz−11−ϕ^z)=15√(∑i=0∞ϕizi−∑i=0∞ϕ^izi)=∑i=0∞15√(ϕi−ϕ^i)zi

\begin{align}\mathcal{F}(n) &= \frac{1}{\sqrt5}\Big(\frac{1}{1 - \phi z} - \frac{1}{1 - \hat\phi z}\Big) \\&= \frac{1}{\sqrt5}\Big(\sum_{i=0}^{\infty}\phi^i z^i - \sum_{i=0}^{\infty}\hat{\phi}^i z^i\Big) \\&= \sum_{i=0}^{\infty}\frac{1}{\sqrt5}(\phi^i - \hat{\phi}^i) z^i\end{align}

d) 由 c) 和 F(z)F(z) 的定义得

Fi=ϕi−ϕ^i5√=ϕi5√−ϕ^i5√

F_i = \frac{\phi^i - \hat{\phi}^i}{\sqrt5} = \frac{\phi^i}{\sqrt5} - \frac{\hat{\phi}^i}{\sqrt5}
当 i=0i = 0 时 ϕ5√=5√+510>0.5\frac{\phi}{\sqrt5} = \frac{\sqrt5 + 5}{10} > 0.5,当 i>2i > 2, |ϕ^i|<0.5|\hat{\phi}^i| 。

思考题4-5

首先,我们知道一个芯片是好的,则所有芯片好坏都可以检查出来。

a) 我们假设有一个芯片是好的,因为坏的芯片数量超过一半,所以教授在测试这个芯片是否是好的时候,所有的坏芯片可以联合起来共同欺骗教授说这是坏的,那么教授就会认为这是个坏芯片;所以当坏的芯片超过半数时,教授无法判断哪个芯片是好的。

b) 可以对 nn 个芯片进行成对测试,总共 ⌊n/2⌋⌊n/2⌋ 对。我们将测试结果分成两组,一组是测试结果为同时为好或坏的,我们称为 AA 组;另一组是测试结果至少有一个是坏的,我们称为 BB 组。由于好的芯片大于 n/2n/2,且 BB 组必然坏芯片大于等于好芯片,所以 AA 组必是好芯片多。为了找到一个好的芯片,我们可以舍弃 BB 组的所有芯片,而 AA 组的芯片我们可以从每一对中任选出一个,作为下一次测试的对象,这样问题规模至少减少为原来的 1/21/2。

c) 我们需要找出一块好的芯片,然后用此芯片检测其余芯片,需 Θ(n)\Theta(n),而检查一块好芯片的递归式 T(n)=T(n/2)+n/2⇒T(n)=Θ(n)T(n)=T(n/2)+n/2\Rightarrow T(n)=\Theta(n),所以总时间 Θ(n)\Theta(n)。

思考题4-6

a)由定义,令 k=i+1,l=j+1k=i+1,l=j+1 可得:

A[i,j]+A[i+1,j+1]≤A[i,j+1]+A[i+1,j]

A[i,j] + A[i+1, j+1] \le A[i,j+1] + A[i+1, j]
反过来,当 A[i,j]+A[i+1,j+1]≤A[i,j+1]+A[i+1,j]A[i,j] + A[i+1, j+1] \le A[i,j+1] + A[i+1, j] 时,使用归纳法,当 k=i+1k=i+1 时成立,设当 k=i+nk=i+n 时成立,则 k+1=i+n+1k+1=i+n+1 有:

A[i,j]+A[k,j+1]≤A[i,j+1]+A[k,j](假设)A[k,j]+A[k+1,j+1]≤A[k,j+1]+A[k+1,j](已给出)⇓两式相加A[i,j]+A[k,j+1]+A[k,j]+A[k+1,j+1]≤A[i,j+1]+A[k,j]+A[k,j+1]+A[k+1,j]⇓A[i,j]+A[k+1,j+1]≤A[i,j+1]+A[k+1,j]

A[i, j] + A[k, j+1] \le A[i, j+1] + A[k, j] \quad (假设) \\A[k, j] + A[k+1, j+1] \le A[k, j+1] + A[k+1, j] \quad (已给出) \\\Downarrow 两式相加\\A[i, j] + A[k, j+1] + A[k, j] + A[k+1, j+1] \leA[i, j+1] + A[k, j] + A[k, j+1] + A[k+1, j] \\\Downarrow \\A[i, j] + A[k+1, j+1] \le A[i, j+1] + A[k+1, j]
b)改 A[1,3]=24A[1,3]=24 或者 A[2,3]=5A[2,3]=5( A[1,1]A[1,1]为最左上角元素)

c) 假设 ∃i,f(i)>f(i+1)\exists i, f(i) \gt f(i+1),那么一定能找到 A[i,f(i)]>A[i+1,f(i+1)]A[i, f(i)] \gt A[i+1, f(i+1)]。
也就是说有 A[i,f(i+1)]+A[i+1,f(i)]>A[i,f(i)]+A[i+1,f(i+1)]A[i, f(i+1)] + A[i+1, f(i)] \gt A[i, f(i)] + A[i+1, f(i+1)]
与 Monge array 的定义矛盾,所以得证。

d) 根据 c) 可知,对于奇数行 2k+1,f(2k)≤f(2k+1)≤f(2k+2)2k+1,f(2k) \le f(2k+1) \le f(2k+2),所以在知道偶数行的最左最小值后,只要求夹在两偶数行的列区间元素的最小值即可。

T(n)=∑i=1m/2(f(2k)−f(2k−2)+1)≤m+n=O(m+n)

T(n) = \sum_{i=1}^{m/2} {(f(2k) - f(2k-2)+1)}\le m+n = O(m+n)

e) 根据 d) 有 T(m)=T(m/2)+O(m+n)T(m) = T(m/2) + O(m+n)

T(m)=T(m/2)+cn+dm=cn+dm+cn+dm/2+cn+dm/4+…=∑i=0lgm−1cn+∑i=0lgm−1dm2i=cnlgm+dm∑i=0lgm−112i<cnlgm+2dm=O(nlgm+m)

\begin{align}T(m) &= T(m/2) + cn + dm \\&= cn + dm + cn + dm/2 + cn + dm/4 + \ldots \\&= \sum_{i=0}^{\lg{m}-1}cn + \sum_{i=0}^{\lg{m}-1}\frac{dm}{2^i} \\&= cn\lg{m} + dm\sum_{i=0}^{\lg{m} - 1}{\frac{1}{2^i}} \\&

CLRS第四章思考题相关推荐

  1. CLRS第三章思考题

    本章思考题证明太繁琐,因此只证明某一些,其余的可类似证明. 思考题3-1 本题只证明前两个,后面可类似得到. 首先,很容易想到 p(n)=Θ(nd)p(n)=\Theta(n^d),若 k≥dk\ge ...

  2. CLRS第十四章思考题

    思考题14-1 a) 设最大重叠点不是重叠区间的任意一个区间的端点.令 pp 是最大重叠区间为 mm 段区间的一个点,但不是重叠区间的任何一个区间的端点.又设 p′p' 是和 mm 段区间重叠的一个端 ...

  3. CLRS第十一章思考题

    思考题11-1 a) 类似推论11.7,我们插入一个关键字需要先做一次不成功查找然后将该关键字置入到第一个遇到的空槽,在定理11.6的证明中,设随机变量 XX 为一次不成功查找探查次数,Pr{X≥i} ...

  4. CLRS第十三章思考题

    思考题13-1 a) 对于插入操作,需要更改根结点到插入的新叶结点路径上的所有结点:对于删除操作,至多改变被删除的节点和其后继的祖先结点. b) 先假设会调用两个子程序MAKE-NEW-NODE(k) ...

  5. CLRS第五章思考题

    思考题5-1 a) 设在第 jj 次增加时,计数器为 ii,表示 nin_i.若计数器增加,则值增加 ni+1−nin_{i+1}-n_i,概率为 1/(ni+1−ni)1/(n_{i+1}-n_i) ...

  6. 计算机数控系统的软件结构模式,第四章 计算机数控系统(CNC系统)

    第四章 计算机数控系统(CNC系统) (43页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 29.9 积分 第四章 计算机数控系统(CNC系统)第一节 ...

  7. arcgis重心迁移分析_Arcgis第四章 空间分析.ppt

    Arcgis第四章 空间分析 第4章 空间分析 空间分析概述 矢量数据分析方法 栅格数据分析 DTM与三维分析 空间分析建模 复习思考题 实验 不同的学者对此有着不同的看法 陈述彭 .黄杏元 .Hai ...

  8. 计算机控制技术及应用第四章,计算机控制技术及工程应用第四章课件.ppt

    <计算机控制技术及工程应用第四章课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机控制技术及工程应用第四章课件.ppt>文档请在天天文库 ...

  9. 《信息保障和安全》第四章

    第四章 密码学 目录 4.1 密码学概述 4.1.1 密码学发展简史 4.1.2 密码体制的基本组成及分类 4.1.3 密码体制的设计原则 4.1.4 密码体制的常见攻击形式 4.2 对称密码体制 4 ...

最新文章

  1. CTFshow 命令执行 web71
  2. angular 指令
  3. python字符串解释_Python学习:字符串的简单解释,深入浅出
  4. PhpStorm 快捷键大全
  5. 华为天才少年,竟然要我用充电宝打游戏!
  6. 《c语言从入门到精通》看书笔记——第10章 指针
  7. CCleaner 2.11.636 - 系统优化和隐私保护工具
  8. 跳槽加薪?调研数据告诉你,提升这些技能最有用
  9. 剖析Android Traceview效率工具及两种建SDcard方式
  10. java对象赋值_Java对象引用和对象赋值
  11. SUMO与各类软件的联合仿真方法
  12. c语言实数的输出和占位_C语言输出格式总结
  13. STM32f407 DCMI方式驱动 OV2640
  14. Android adb使用总结记录
  15. 手机开发|USB调试时未弹出授权对话框
  16. 学计算机用商务本还是游戏本,工作学习游戏?这 8 款最具性价比的笔记本电脑,总有一款适合你...
  17. python手机端给电脑端发送数据_神途传奇 (手机端+电脑端) 数据互通 传奇来袭 www.8wf.com...
  18. loadrunner运行场景时,用户卡在run状态且退出时卡在gradual exiting状态
  19. java实现花呗分3、6、12期计算用户每期手续费及每期总费用
  20. Dapp开发实战:去中心化NFT交易平台

热门文章

  1. 在线视频:模拟电子技术,电力电子技术
  2. windows杀死nginx进程
  3. 网址铺吧网址导航程序按来路显示网址生成源码
  4. EDI集成ERP一体化解决方案
  5. FFT幅度谱为什么不对,需要较正
  6. TIA PORTAL S7-1200如何使用博途的仿真功能PLCSIM?
  7. 2.5、组织结构对项目的影响
  8. 芳基喹唑啉类化合物,2-苯基喹唑啉,2-phenylquinazoline,CAS号:25855-20-3介绍
  9. python学习—伍—字典
  10. JAVA 事务注解@Transactional用法