《算法导论》第五章-第1节_练习(参考答案)
来源:互联网 发布:美食纪录片 知乎 编辑:程序博客网 时间:2024/05/18 03:18
算法导论(第三版)参考答案:练习5.1-1,练习5.1-2,练习5.1-3
Exercise 5.1-1
Show that the assumption that we are always able to determine which candidate is best, in line 4 of procedure
HIRE-ASSISTANT
, implies that we know a total order of the ranks of the candidates.
如果一个偏序关系同时又是一个全关系,则称为全序或线性序。一个偏序关系,要求满足自反性、反对称性和传递性。
假设这里的关系为 “是否好或更好于”,
- 自反性:每个应聘者都比自己好或更好。满足
- 反对称性:如果应聘者A好或更好于应聘者B,同时应聘者B又好或更好于应聘者A,则可知A和B一样好。满足
- 传递性:如果应聘者A好或更好于应聘者B,应聘者B又好或更好于应聘者C,则A好或更好于C。满足
所以该关系是一个偏序。又因为所有的应聘者出现的情况的关系,我们都可以判断,所以该关系又是一个全关系。因此,该关系是一个全序。
Exercise 5.1-2
⋆ Describe an implementation of the procedure
RANDOM(a,b)
that only makes calls toRANDOM(0,1)
. What is the expected running time of your procedure as a function ofa andb ?
RANDOM(a,b)
要求等概率出现,其中有
Pseudocode
RANDOM(a,b) n = [lg(b-a+1)] //向上取整 x = 0 // line 2 for i = 0 to n-1 x += pow(2, i)*RANDOW(0, 1) if x > b-a+1 back to line 2 return a+x
for循环每次需要跑 RANDOM(0,1)
。同时需要经过多少次”back to line 2”后最终return,这其实服从几何分布
Exercise 5.1-3
⋆ Suppose that you want to output
0 with probability1/2 and1 with probability1/2 . At your disposal is a procedureBIASED-RANDOM
that outputs either0 or1 . It outputs1 with some probabilityp and0 with probability1−p , where0<p<1 , but you don’t now whatp is. Give an algorithm that usesBIASED-RANDOM
as a subroutine, and returns an unbiased answer, returning0 with probability1/2 and1 with probability1/2 . What is the expected running time of your algorithm as a function ofp ?
分析题目发现,用有偏随机数生成器有序地生成两个数,两个数不同的两种情况的概率是相同的。所以
Pseudocode
UNBIASED_RANDOM(0,1) h = BIASED_RANDOM(0, 1) //line 1 l = BIASED_RANDOM(0, 1) if h is not equal l return h else back to line 1
同样服从几何分布,多少次后成功return的期望是
网上看到过实现了 BIASED-RANDOM
的算法,大家可以学习一下。思路为:假设以概率0.7输出1,以概率0.3输出0。则转化为 unbiased -RANDOM(1,10)
,小于等于7输出1,否则输出0。 参考链接
- 《算法导论》第五章-第1节_练习(参考答案)
- 《算法导论》第五章-第2节_练习(参考答案)
- 《算法导论》第五章-第3节_练习(参考答案)
- 《算法导论》第五章-第4节_练习(参考答案)
- 《算法导论》第一章-第1节_练习(参考答案)
- 《算法导论》第二章-第1节_练习(参考答案)
- 《算法导论》第三章-第1节_练习(参考答案)
- 《算法导论》第四章-第1节_练习(参考答案)
- 《算法导论》第一章-第2节_练习(参考答案)
- 《算法导论》第二章-第2节_练习(参考答案)
- 《算法导论》第二章-第3节_练习(参考答案)
- 《算法导论》第三章-第2节_练习(参考答案)
- 《算法导论》第四章-第2节_练习(参考答案)
- 《算法导论》第四章-第3节_练习(参考答案)
- 《算法导论》第四章-第4节_练习(参考答案)
- 《算法导论》第四章-第5节_练习(参考答案)
- 《算法导论》第四章-第6节_练习(参考答案)
- 《算法导论》第五章-思考题(参考答案)
- ZOJ 3194 Coverage【贪心】
- Unity3D shader(12)——Fragment Shader(模型颜色变化)
- A. Arya and Bran
- 百度之星初赛(A) 1 数学 5 模拟 6 判连通(BFS)
- GNU计划的了解
- 《算法导论》第五章-第1节_练习(参考答案)
- ffmpeg android studio集成记录(我草)
- Hardening the media stack
- 设计模式-简单工厂模式
- 浏览器缓存常用设置
- C Recipes A Problem Solution Approach
- SQL语句中的limit使用
- Sweet Butter 香甜的黄油(spfa)
- HDUOJ 1102 Constructing Roads(最小生成树)