算法导论3th 第五章课后题解答

本文详细解答了算法导论第三版第五章的习题,包括理解HIRE-ASSISTANT过程中的最佳候选人判断、实现RANDOM(a, b)仅依赖RANDOM(0, 1)的方法及其期望运行时间分析,以及如何利用BIASED-RANDOM构造无偏随机算法及其运行时间与概率p的关系。" 134473042,8753399,MFC实现复数运算:加减乘除与模长计算,"['MFC', 'C++', '复数计算']
摘要由CSDN通过智能技术生成

Exercises 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 on the ranks of the candidates.

证明:假设在过程 HIRE-ASSISTANT 的第四行中,我们总能够决定哪一个应聘者是最优秀的,则意味这我们知道所有应聘者排名的次序。

Answer

always这个词表示对所有n!种组合,都能够确定,而这n!种组合已经囊括了所有的两两比较的案例。


Exercises 5.1-2

Describe an implementation of the procedure RANDOM(a, b) that only makes calls to RANDOM(0, 1). What is the expected running time of your procedure, as a function of a and b?

请描述程序 RANDOM(a, b) 的一种实现方法,它只调用 RANDOM(0, 1)。作为一个关于a和b的函数,你的程序的期望运行时间是多少?

Answer

我们已经拥有一个 RANDOM(0, 1) 函数,现在需要生成 a~b 之间的随机数,我们可以使用二分法,使用 RANDOM(0, 1) 来划分出我们随机数是在 a~b 中的左边还是右边,然后依次类推下去,直到无法二分为止。显而易见,算法完成所需的循环次数 n n n 满足 2 n = ( b − a ) 2^n=(b-a) 2n=(ba) ,这个算法的复杂度是 O ( l g ( n ) ) O(lg(n)) O(lg(n)),其中 n = ( b − a ) n=(b-a) n=(ba)

数学推导如下:
while循环的每次迭代都需要 O(n) 时间来运行,循环在给定迭代中停止的概率为 ( b − a + 1 ) ( 2 n )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值