本章通過四個例子來理解概率分析和隨機演算法。
問題:乙個屋子裡人數必須要達到多少人,才能使其中兩人生日相同的機會達到50%?
5.1.1 概率分析
至少有兩個人生日相同的概率 = 1 - 所有人生日都不相同的概率。 bk
=⋂i=
1kai
其中ai
是指所有
ji 與
j生日不同的事件,則有bk
=ak∩
bk−1
,可得遞迴式 pr
(bk)
=pr(
bk−1
)pr(
ak|b
k−1)
其中pr
(ak|
bk−1
)=(n
−k+1
)/n ,所以有 pr
(bk)
=pr(
b1)p
r(a2
|b1)
pr(a
3|b2
)⋯pr
(ak|
bk−1
)=1(
n−1n
)(n−
2n)⋯
(n−k
+1n)
≤e−1
/ne−
2/n⋯
e−(k
−1)/
n=e−
k(k−
1)/2
n≤1/
2 n=365時,k>=23。
5.1.2 概率分析
定義指示器隨機變數xi
j ,有 e[
xij]
=1/n
x=∑i
=1k∑
j=i+
1kxi
je[x
]=e[
∑i=1
k∑j=
i+1k
xij]
=∑i=
1k∑j
=i+1
ke[x
ij]=
c2k1
n=k(
k−1)
2n 當
k(k−
1)≥2
n 時,生日相同的兩人對的期望數至少是1。
問題:b個箱子,在平均意義下必須要投多少個球,才能每個箱子至少都投進一球(球落在每個箱子等可能的)。
第i階段包括從第i-1次命中到第i次命中之間的投球。設ni
表示第i階段的投球次數,所以b次命中所需的投球此引數為n=
∑i=1
bni ,而 e[
ni]=
bb−i
+1所以有 e[
n]=e
[∑i=
1bni
]=∑i
=1be
[ni]
=b∑i
=1b1
i=b(
lnb+o
(a))
問題:假設拋投一枚標準的硬幣n次,最長連續正面的序列的期望長度有多長?答案是θ(
lgn)
主要思想是得到期望的乙個下界,過程太長。。。這裡略=。=具體分析過程見書p76-77問題:公司應聘員工,當有更好的申請者出現則僱傭新人解雇舊人,如何在最小化面試次數、僱傭成本和最大化僱傭應聘者的質量取得平衡。
策略:選擇乙個正整數
k<
n ,面試然後拒絕前k個應聘者,再僱傭其後比前面最高分數還高的第乙個應聘者。 pr
(s)=
∑i=k
+1np
r(si
)=∑i
=k+1
nkn(
i−1)
=kn∑
i=k+
1n1i
−1=k
n∑i=
kn−1
1i求下界最大化,得到1n
(lnn−
lnk−1
)=0 ,即k=
n/e 時,概率下界最大化。因此,如果用k=
n/e 來實現我們的策略,那麼將以至少1/
e 的概率成功僱傭到最好的應聘者。
演算法導論 第5章 概率分析和隨機演算法
考慮乙個僱傭助理的問題,對於每乙個出現的應聘者,若該應聘者比之前所有應聘者都好,則僱傭該應聘者。初始化時建立乙個虛擬的應聘者編號0,他比其他所有應聘者都差,則過程如下 該問題的費用模型並不關注執行時間,而是面試和僱傭產生的費用。面試費用較低為ci,僱傭費用較高為ch,則若m是僱傭人數,總費用為o c...
演算法導論第5章 概率分析和隨機演算法(5 1)
5.1 僱傭問題 概率分析 在問題的分析中應用概率技術。隨機演算法 如果乙個演算法的行為,不只由輸入決定,也由隨機數生成器決定,那麼稱這個演算法為隨機演算法。1.習題解答 5.1 1 如果可以知道任意兩個人的排名的大小,自然等價於得到了總排名。5.1 2 解 這題等價於二進位制表示任意數,其中一次r...
演算法導論 第五章 概率分析和隨機演算法
5.1 僱傭問題 僱傭問題類似於在一組隨機排序的陣列中查詢最大值的問題,對於這類問題無法確切的得出其執行效率。但可以根據輸入的概率分布得到平均情況執行時間。對於乙個演算法行為不僅由輸入決定,而且由隨機數生成器產生的數值決定,則稱演算法是隨機的,其執行時間稱為期望執行時間。5.2指示器隨機變數 由指示...