递归式-代入法求解过程
代入法
substitution method
- Guess the from of the solution
- verify by induction
- solve the consts
example
T(n)=4T(n/2)+nT(n) = 4T(n/2) + nT(n)=4T(n/2)+n
[T(1)=Θ(1)][T(1) = \Theta(1)][T(1)=Θ(1)]
—Guess: T(n)=O(n3)T(n) = O(n^3)T(n)=O(n3)
—Assume: T(k)≤ck3,fork<nT(k) \leq ck^3, for \:k < nT(k)≤ck3,fork<n
—T(n)=4T(n/2)+n≤4c(n/2)3+nT(n) = 4T(n/2)+n \leq 4c(n/2)^3+nT(n)=4T(n/2)+n≤4c(n/2)3+n
=c2n3+n=\frac{c}{2}n^3+n=2cn3+n
=cn3−(c2n3−n)=cn^3-(\frac{c}{2}n^3 - n)=cn3−(2cn3−n)
≤cn3\leq cn^3≤cn3, 当且仅当(c2n3−n)≥0(\frac{c}{2}n^3 - n) \geq 0(2cn3−n)≥0. example: ∃c≥1,n≥2\exists \: c \geq 1, n \geq 2∃c≥1,n≥2
Base case, T(1)=Θ(1)≤cT(1) =\Theta(1) \leq cT(1)=Θ(1)≤c, 只要ccc足够大即可满足。
由此,可以看到T(n)=O(n3)T(n)=O(n^3)T(n)=O(n3)是成立的。
直观上来看,按照渐进趋势,当nnn趋于无穷大时,∃somecs.t.(c2n3−n)≥0\exists \:some \:c \: s.t.\: (\frac{c}{2}n^3-n)\geq 0∃somecs.t.(2cn3−n)≥0成立。证毕。
鉴于此,我们可以看到,要使上述归纳成立,则余数(c2n3−n)≥0(\frac{c}{2}n^3-n)\geq 0(2cn3−n)≥0,且为常数比较好。因此,再次猜测如下:
—Guess: T(n)=O(n2)T(n) = O(n^2)T(n)=O(n2)
—Assume: T(k)≤ck2,fork<nT(k) \leq ck^2, for \:k < nT(k)≤ck2,fork<n
—T(n)=4T(n/2)+n≤4c(n/2)2+nT(n) = 4T(n/2)+n \leq 4c(n/2)^2+nT(n)=4T(n/2)+n≤4c(n/2)2+n
=cn2+n=cn^2+n=cn2+n
=cn2−(−n)=cn^2-(-n)=cn2−(−n)
直观上, 我们感觉到T(n)=O(n)T(n) = O(n)T(n)=O(n)成立, 但是没有证明归纳法的严格形式T(n)≤cn2T(n) \leq cn^2T(n)≤cn2。
造成这种情况的原因, 可能是我们在假设时忽略了低阶项的缘故, 因此
—Assume: T(k)≤c1k2−c2k,fork<nT(k) \leq c_1k^2 - c_2k, for \:k < nT(k)≤c1k2−c2k,fork<n
—T(n)=4T(n/2)+n≤4(c1(n/2)2−c2(n/2))+nT(n) = 4T(n/2)+n \leq 4 \big(c_1(n/2)^2 - c_2(n/2) \big) +nT(n)=4T(n/2)+n≤4(c1(n/2)2−c2(n/2))+n
=c1n2−2c2n+n=c_1n^2 - 2c_2n + n=c1n2−2c2n+n
=c1n2−c2n−(c2−1)n=c_1n^2 - c_2n - (c_2 - 1)n=c1n2−c2n−(c2−1)n, 当c2−1≥0c_2 - 1 \geq 0c2−1≥0, 即c2≥1c_2 \geq 1c2≥1时
≤c1n2−c2n\leq c_1n^2 - c_2n≤c1n2−c2n
Base case, T(1)=Θ(1)≤c1−c2T(1) =\Theta(1) \leq c_1 - c_2T(1)=Θ(1)≤c1−c2, 只要c1c_1c1相对于c2c_2c2足够大即可满足
T(1)=Θ(1)T(1) = \Theta (1)T(1)=Θ(1)。
证毕。
递归式-代入法求解过程相关推荐
- 4.3—代入法求解递归式
对于代入法求解递归式,有以下自己的感触: 1.中间的证明过程用到了数学归纳法的思想: (1)首先证明初始条件是不是满足的,例如T(n)=O(nlgn),首先得验证当n=1的时候是不是满足条件,这里还牵 ...
- 用代入法求解递归式里的”微妙细节“【算法导论P49】
当利用归纳法证明一个上界时,实际上证明一个更弱的上界可能会更难一些,因为为了证明一个更弱的上界,我们在归纳证明中也必须使用同样更弱的界. 例如: 考虑一下的递归式: T(n)=4T(n/3)+n 知道 ...
- 第四章 4.3 用代入法求解递归式
4.3-1 证明:T(n)=T(n-1)+n的解为O(n2n^2). c(n−1)2+n≤n2cn2−2cn+c+n≤n2cn2−(2c−1)n+1≤n2 c(n-1)^2+n\le n^2 \\cn ...
- AHP层次分析法求解过程(matlab代码)
查看全文 http://www.taodudu.cc/news/show-6469878.html 相关文章: Matlab实现PSO算法(附上6个完整仿真源码) 计算机组成原理 扩展指令的操作码,[ ...
- 分治算法中的数学——求解递归式(代入法)
前言 在运用分治法将原问题分解成多个子问题后,通常可以得到一个关于时间复杂度的递归式,如T(n)=T(n/2)+O(1),如何求解递归式并得出该算法的时间复杂度O(f(n))就是我们要解决的问题.一般 ...
- 算法导论 — 4.4 用递归树方法求解递归式
笔记 在应用代入法求解递归式时,需要事先做出一个好的猜测.然而,有时候做出好的猜测是很困难的,此时可以考虑采用递归树方法.在递归树中,每个结点表示一个单一子问题的代价.创建递归树之后,对树的每层的各子 ...
- 复阻抗法 求解 传递函数
1.复阻抗法求传递函数 电阻的传递函数 :RRR 电容的传递函数 : 1CS\frac1{CS}CS1 电感的传递函数 : LSLSLS 在求解纯电路的传递函数时,只需要使用上式代入即可求解,例如下 ...
- 高等数学 函数极限求法(一) 代入法
高数 函数极限求法(一) 代入法 极限是什么? 极限就像你坐着宇宙飞船去探索宇宙的边界一样,无限接近 却 没法到达! 大学高数中极限部分可以简单分为两部分:函数极限 和 数列极限 : 本篇讲解利用代 ...
- 【工具】苏格拉底式诘问法解决工作问题
目录 一.什么是苏格拉底式诘问法 二.苏格拉底式诘问法的细分 三.在实际工作中运用苏格拉底式诘问法解决问题 一.什么是苏格拉底式诘问法 苏格拉底式诘问法(Socratic Elenchus)是苏格拉底 ...
最新文章
- 论文笔记(Attentive Recurrent Social Recommendation)
- matlab 画图直接存储_Matlab Figure图形保存
- java 自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇
- AIR中用户离开状态和返回状态
- MediaStreamAudioSourceNode
- 《方舟生存进化》单机存档损坏解决方法
- java jackson unicode_如何让Jackson JSON生成的数据包含的中文以unicode方式编码
- STM32控制启动步进电机
- 量化研究 | 策略在指数与主连复权的差异化分析(最终篇)
- python科学计算环境配置_ATLAS + NumPy + SciPy + Theano 的Python科学计算环境搭建
- Java实现word导出与pdf导出
- 多项式求和(C语言)
- 某某客户的一次勒索病毒应急响应
- 大牛手把手教你!Service有几种启动方式?吐血整理
- [附源码]java毕业设计网上购物商城系统
- Unity 相机跟随(第三人称视角)
- Oracle认证的三个等级
- 仁者如射,射者正己而后发。发而不中,不怨胜己者,反求诸己而已矣。
- 方阵的转置二次方三次方
- 微信测试账户的申请,以及配置失败问题的处理,最新
热门文章
- es聚合分页java_ES 实现聚合分页
- Launcher3文件夹九宫格显示
- linux启动postfix命令,如何在Linux停止和启动postfix服务的命令
- java用this指向_java中的this指向?
- 努比亚Z50 Ultra 参数配置 努比亚Z50 Ultra怎么样
- 单季首盈利致股价大涨超20%,亮眼财报背后拼多多的焦虑也来了?
- 2019年个税怎么报,据说90%的人都员工的个税计算错了!
- 社会网络分析之”组成部分”、小圈子和聚类
- mac重置php,苹果笔记本电脑怎么恢复出厂设置
- html简单盒子代码,CSS3 3D盒子超简单制作