《算法导论》第三版第5章 概率分析和随机算法 练习&思考题 个人答案

本博客详细解答了《算法导论》第三版第5章的概率分析和随机算法相关练习题,涉及雇用问题、指示器随机变量、随机算法及其概率分析,并对部分思考题进行了深入探讨,例如雇用问题的全序关系性质、查找无序数组的复杂度等。
摘要由CSDN通过智能技术生成

注:本章内容需要一定的《概率论与随机过程》课程基础。

5.1 雇用问题

5.1-1

以下翻译自https://ita.skanev.com/05/01/01.html
解:如果一个偏序关系同时又是一个全关系,则称为全序或线性序。一个偏序关系,要求满足自反性、反对称性和传递性。
假设这里的关系为 “是否一样好或更好于”,
自反性:每个应聘者都比自己好或更好。
反对称性:如果应聘者A与B一样好或更好于应聘者B,同时应聘者B又与A一样好或更好于应聘者A,则可知A和B一样好。
传递性:如果应聘者A与B一样好或更好于应聘者B,应聘者B又与C一样好或更好于应聘者C,则A与C一样好或更好于C。
所以该关系是一个偏序。又因为所有的应聘者出现的情况的关系,我们都可以判断,所以该关系又是一个全关系。因此,该关系是一个全序。

5.1-2

解:

RANDOM(a, b)
n = b - a
c = ceiling(lgn)
offset = 0
for i = 1 to c
    offset = offset + b[i] * (2^i)
if offset > n
    return RANDOM(a, b)
else return a + offset

O ( ln ⁡ ( b − a ) ) O(\ln(b-a)) O(ln(ba))

5.1-3

思路:生成两次有偏随机数,两数相等的概率为0.5,不相等的概率也为0.5。
解:

RANDOM
if BIASED-RANDOM == BIASED-RANDOM
    return 1
else return 0

运行时间 Θ ( 1 ) \Theta(1) Θ(1)

5.2 指示器随机变量

5.2-1

解: 1 n \frac{1}{n} n1; 1 n ! \frac{1}{n!} n!1

5.2-2

提示:过程中的求和可用积分计算。
解: 1 n ( ln ⁡ ( n − 1 ) + O ( 1 ) ) \frac{1}{n}(\ln(n-1)+O(1)) n1(ln(n1)+O(1))

5.2-3

解: 3.5 n 3.5n 3.5n

5.2-4

解:1

5.2-5

解: 1 2 A n 2 \frac{1}{2}A_n^2 21An2

5.3 随机算法

5.3-1

解:

RANDOMIZE-IN-PLACE(A)
n = A.length
swap A[1] with A[RANDOM(1, n)]
for i = 2 to n
    swap A[i] with A[RANDOM(i, n)]

循环不变式的保持变为:我们假设在第i(i=2,…,n)次迭代之前,每种可能的(i-1)排列出现在子数组A[1…i-1]中的概率是(n-i+1)!/n!。

5.3-2

思路:没有实现教授的意图,当n=3时可验证。

5.3-3

思路:看似更“随机”了,但其实会产生不均匀的随机排列。均匀随机有 n ! n! n!种可能,而本题会产生 n n n^n nn种可能,在n比较小时也可以通过实验验证,一个很好的参考

5.3-4

思路:其实很容易看出这是一个随机偏移量的循环右移,因此易证概率为1/n。

5.3-5

证明:
Pr ⁡ { 1 ∩ 2 ∩ 3 ∩ … } = Pr ⁡ { 1 } ⋅ Pr ⁡ { 2 ∣ 1 } ⋅ Pr ⁡ { 3 ∣ 1 ∩ 2 } ⋯ = 1 ( 1 − 1 n 3 ) ( 1 − 2 n 3 ) ( 1 − 3 n 3 ) ⋯ ≥ 1 ( 1 − n n 3 ) ( 1 − n n 3 ) ( 1 − n n 3 ) ⋯ ≥ ( 1 − 1 n 2 ) n ≥ 1 −

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值