匹配問題
問題
一個屋子裏面有N個人,每個人有一頂帽子。假如所有人把帽子扔到屋子中央,然後每個人都隨機選一頂帽子。
a) 沒有人撿到自己帽子的概率;
b) 有k(k⩽N) 個人撿到自己帽子的概率。
解決方法一
問題a
先計算至少有一個人撿到自己帽子的概率。設Ei,i=1,2,…,N 表示事件第i個人撿到了他自己的帽子。現在,根據容斥原理,至少一個人撿到自己帽子的概率P(⋃i=1NEi) 就等於:
P(⋃i=1NEi)=∑i=1NP(Ei)−∑i1<i2P(Ei1Ei2)+…+(−1)n+1∑i1<i2⋯<inP(Ei1Ei2…Ein)+⋯+(−1)N+1P(E1E2…EN)
如果將實驗結果看作是一個N 維數組的話,其中第i 個元素表示被第i 個人撿到的帽子的編號,那麼有N! 種可能的結果(例如結果(1,2,3,…,N) 表示所有人都拿到了自己的帽子)。進一步的,Ei1Ei2…Ein 表示事件是i1,i2,…,in 這n 個人拿到了自己的帽子,這樣的可能有(N−n)(N−n−1)⋯3⋅2⋅1=(N−n)! 種,因爲剩下的N−n 個人中隨便選帽子。總共的可能結果是N! 種,因此:
P(Ei1Ei2⋯Ein)=(N−n)!N!
同時,對於
∑i1<i2<⋯<inP(Ei1Ei2…Ein) 總共有
(Nn) (即
CnN )種選法,因此:
∑i1<i2<⋯<inP(Ei1Ei2…Ein)=N!(N−n)!(N−n)!n!N!=1n!
因此,
P(⋃i=1NEi)=1−12!+13!−⋯+(−1)N+11N!
所以,沒有人撿到自己帽子的概率就是:
1−1+12!−13!+⋯+(−1)NN!
N 非常大時,此概率爲
e−1≈.36788 .也就是說,
N 很大時,沒有人撿到自己帽子的概率大約是.37,而不是很多人認爲的概率會趨向於1當
N→∞時
問題b
設E 表示事件k 人中每個人都拿到了自己的帽子,G 表示事件其它的N−k 個人中沒有人拿到自己的帽子。則:
P(EG)=P(E)P(G|E)
設
Fi,i=1,…,k ,表示事件第
i 個人拿到了自己的帽子。則:
P(E)====P(F1F2⋯Fk)P(F1)P(F2|F1)P(F3|F2F1)⋯P(Fk|F1⋯Fk−1)1N1N−11N−2⋯1N−k+1(N−k)!N!
已知k 人中的每個人都撿到了自己的帽子,其它的N−k 個人將隨機的在他們的N−k 個帽子中選擇,因此其它人中沒有人撿到自己帽子的概率是:
P(G|E)=PN−k=∑i=0N−k(−1)i/i!
因此,指定的
k 人撿到自己帽子而其它人沒有撿到自己帽子的概率是:
P(EG)=(N−k)!N!PN−k
因爲選擇
k 人有
(Nk) 種方法,因此,要求的概率就是:
P(只有k個人撿到自己帽子)=PN−k/k!≈e−1/k!當k很大時
解決方法二
問題a
設E 表示事件沒有匹配發生,此事件顯然與n 有關,記爲Pn=P(E) . 我們從第一個人是否選擇到了自己的帽子開始——分別記爲M 和MC 。則:
Pn=P(E)=P(E|M)P(M)+P(E|MC)P(MC)
顯然,
P(E|M)=0 ,因此
Pn=P(E|MC)n−1n(1)
現在,
P(E|MC) 剩下
n−1 個人都沒有撿到自己帽子的概率(且其中一人的帽子不在這些帽子中,因爲已經被第一個人撿走了)。此事發生可由兩種獨立事件組成:那個人撿到了第一個人的帽子且其它人都沒有撿到自己的帽子,以及那個人撿到了除了第一個人和他自己的帽子以外的一頂帽子,且其它人都沒有撿到自己的帽子。前者的概率是
[1/(n−1)]Pn−2 ,由此可得:
P(E|MC)=Pn−1+1n−1Pn−2
因此,由式
(1) ,可以得到:
Pn=n−1nPn−1+1nPn−2
或者,等價地:
Pn−Pn−1=−1n(Pn−1−Pn−2)(2)
再由於
Pn 表示
n 個人中無匹配的概率,因此:
P1=0P2=12
由
(2) 式,得:
P3−P2=−P2−P13=−13!P4−P3=−P3−P24=−14!ororP3=12!−13!P4=12!−13!+14!
由此,一般地,
Pn=12!−13!+14!−⋯+(−1)nn!
問題b
爲了計算只有k 人得到自己帽子的概率,我們考慮一個確定的k 人組,有且只有此k 人撿到自己帽子的概率是:
1n1n−1⋯1n−(k−1)Pn−k=(n−k)!n!Pn−k
其中
Pn−l 表示其它
n−k 個人沒有撿到自己帽子的概率。總共有
(nk) 種選法,因此有且只有
k 個撿到自己帽子的概率是:
Pn−kk!=12!−13!+⋯+(−1)n−k(n−k)!k!