算法导论 第三章 函数的增长,3.1练习个人解答(Sor)
来源:互联网 发布:linux cpu 进程 编辑:程序博客网 时间:2024/05/29 16:32
3.1-1 假设f(n)与g(n)都是渐近非负函数。使用Θ
记号的基本定义来证明max(f(n),g(n)) = Θ(f(n)+g(n))。
证:不妨假设max(f(n),g(n)) = f(n),则0 ≤ g(n)/f(n) ≤ 1
设有正常量c1,c2,n0,使得所有对n ≥ n0, 有
0 ≤ c1*f(n) ≤ f(n) + g(n) ≤ c2*f(n)
解得 c1 ≤ 1 + g(n)/f(n), c2 ≥ 1 + g(n)/f(n)
可取 c1 = 1, c2 = 2 , 此时 n0 ≥ 1 即可
3.1-2 证明: 对于任意实常量a和b,其中b>0,有(n+a)^b = Θ(n^b)
证:(n+a)^b的最高次数项为 n^b,根据直觉可得出结论,下面给出具体过程
a,b为任意实常量,设f(n) = (n+a)^b
设有正常量c1,c2,n0,使得所有对n ≥ n0,有
0 ≤ c1*f(n) ≤ n^b ≤ c2*f(n),
c1 ≤ [n/(n+a)]^b, c2 ≥ [n/(n+a)]^b
可取c1 = [1/(1+a)]^b, c2 = 2, n0 ≥ 1即成立
3.1-3 解释为什么“算法A的运行时间至少是O(n^2)”这一表述是无意义的
自己想不太清楚,网上大家解释也欠妥,下面的话都是根据算法导论教师手册上来的:
假设运行时间为T(n),
T(n) ≥ O(n^2) 意味着 对于某个f(n) = O(n^2)有
T(n) ≥ f(n)。然而因为g(n) = 0 ∈ O(n^2),这意味着
T(n) ≥ 0, 但是运行时间总是非负的,所以这句话并没有告诉我们有用的信息。(英语不好,献丑了)
3.1-4 2^(n+1) = O(2^n) 成立吗? 2^2n = O(2^n)成立吗?
要使2^(n+1) = O(2^n)成立,我们需要找到正常量 c,n0,使得0 ≤ 2^(n+1) ≤ c*2^n,这非常容易,我们取c = 2,n0 ≥1即可。
所以前者成立。
要使2^2n = O(2^n)成立,同理,假设有正常量c,n0
使得 0 ≤ 2^2n ≤ c*2^n
=> 2^n ≤ c
不可能找到这样的c,所以后者不成立
3.1-5 证明定理3.1
证:
充分性
f(n) = Θ(g(n)),意味存在正常量c1,c2,n0,使得对所有n ≥ n0有
0 ≤ c1f(n) ≤ g(n) ≤ c2f(n)
读者可以轻易地分离出
0 ≤ c1f(n) ≤ g(n),即f(n) = O(n)
0 ≤ g(n) ≤ c2f(n) , 即f(n) = Ω(n)
充分性成立;
必要性:
与充分性证明类似,此处不再赘述
3.1-6 证明:一个算法的运行时间为Θ(g(n))当且仅当其最坏的运行时间为O(g(n)),且其最好情况为Ω(g(n))
Θ符号渐近给出一个算法运行时间的上下界,而O,Ω都是渐近的给出上界和下界,个人感觉是定理3.1的阐述,所以不赘述了。
3.1-7 证明:o(g(n)) ∩ ω(g(n)) 为 ∅
一个不严谨的证明如下:
f(n) = o(g(n)) 类似于 {x|x < b}
f(n) = ω(g(n)) 类似于 {x|x > b}
o(g(n)) ∩ ω(g(n))类似于{x|x>b 且 x < b} = ∅
3.1-8可以将我们的表示法扩展到有两个参数n和m的情形,其中n和m的值可以以不同的速率,互相独立地趋于无穷。对给定的函数g(n,m),O(g(n,m))为函数集
O(g(n,m))={ f(n,m): 存在正整数c,n0和m0,使对所有n>=n0或m>=m0,有0<=f(n,m)<=cg(n,m) }。
给出对应的Ω(g(n,m))和Θ(g(n,m))的定义。
想想还是略吧。
- 算法导论 第三章 函数的增长,3.1练习个人解答(Sor)
- 算法导论 第三章 函数的增长 3.2习题个人解答
- 算法导论 第三章 函数的增长
- 算法导论读书笔记 第三章 函数的增长
- 算法导论第三章_函数的增长_读书笔记
- 算法导论第三章函数的增长问题研究
- 算法导论_第三章_函数的增长
- 《算法导论》笔记系列之第三章函数的增长
- 算法导论 学习笔记 第三章 函数的增长
- Introduction to Algorithms 算法导论 第3章 函数的增长 学习笔记及习题解答
- 算法导论第三章 函数的增长——关于O Θ Ω的用法
- 《算法导论》系列课后思考题之-第三章《函数的增长》(上)
- 《算法导论》系列课后练习题之-第三章《函数的增长》(下)
- 《算法导论》系列课后思考题之-第三章《函数的增长》(下)
- 算法导论学习笔记-第3章 函数的增长
- [算法导论] 函数的增长---渐进记号
- 第三章 函数的增长
- 第三章 函数的增长
- 抽屉
- AJAX实现多任务
- MAC os常见操作
- 最短路径—Dijkstra算法和Floyd算法
- FMDB - - 归纳整理- Vic_Li
- 算法导论 第三章 函数的增长,3.1练习个人解答(Sor)
- NSURLSession加载数据 下载上传
- 音频播放STKAudioPlayer
- iOS第三方支付-微信支付
- 2013计算机视觉代码合集
- HUNAN 13323 数字整除
- [kuangbin带你飞]专题九 连通图题解报告-差1题
- iOS客户端的微信支付接入
- QT5.5移植到ARM全攻略