《演算法導論》第5章 概率分析和隨機演算法 個人筆記

2021-07-31 14:07:31 字數 2116 閱讀 1366

本章通過四個例子來理解概率分析和隨機演算法。

問題:乙個屋子裡人數必須要達到多少人,才能使其中兩人生日相同的機會達到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指示器隨機變數 由指示...