匹配问题
问题
一个屋子里面有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!