技术问询:邮递员问题——10封随机投递信件至少6封正确的概率及通用情况
随机投递信件的概率计算与场景分析
咱们先解决第一个具体问题:10封不同信件随机投给10个不同收件人,至少6封投递正确的概率是多少?
10封信至少6封投对的概率计算
要算这个概率,我们得把“至少6封投对”拆成恰好6封、7封、8封、9封、10封投对这几种互斥的情况,分别计算每种情况的数量,再求和,最后除以总排列数(10!)得到概率。
首先得明确两个关键概念:
- 组合数
C(n,k):从n封信里选k封投对的选法数量; - 错排数
D(m):m封信全部投错的情况数,公式是D(m) = m! * (1 - 1/1! + 1/2! - 1/3! + ... + (-1)^m/m!)
现在逐个计算每种情况:
- 恰好10封全对:只有1种可能,就是每封信都精准投给对应收件人,数量为
C(10,10)*D(0) = 1*1 = 1(注:D(0)=1,空排列默认是错排)。 - 恰好9封投对:这是不可能的——如果9封信都投对了,剩下的1封信只能对应唯一的收件人,必然也投对,所以数量为
C(10,9)*D(1) = 10*0 = 0(D(1)=0,单个信件没法错排)。 - 恰好8封投对:先选8封信投对(
C(10,8)=45种选法),剩下2封信只能互相投错(只有1种方式:A的信投给B,B的信投给A),总数量为45*1=45。 - 恰好7封投对:选7封信投对(
C(10,7)=120种选法),剩下3封信的错排数是2(比如ABC三封信,错排为BCA和CAB),总数量为120*2=240。 - 恰好6封投对:选6封信投对(
C(10,6)=210种选法),剩下4封信的错排数是9(用错排公式计算得D(4)=9),总数量为210*9=1890。
把这些符合条件的情况数加起来:1+0+45+240+1890=2176。总排列数是10!=3628800,所以概率为:
2176 / 3628800 ≈ 0.0005996 ≈ 0.06%
这个概率非常低,差不多每1667次随机投递才会出现一次至少6封投对的情况。
n封信至少m封投对的场景变化
当我们把问题扩展到n封信、至少m封投对时,场景会随着n和m的关系变化呈现不同规律:
1. 当m接近n时(m = n - k,k为固定小整数)
- 若
m = n-1:概率永远为0——n-1封信都投对时,最后一封信必然也投对,不可能出现恰好n-1封对的情况。 - 若
m = n-2:符合条件的情况数是C(n,2)*1 = n(n-1)/2(选n-2封投对,剩下2封互相错排),概率为[n(n-1)/2]/n! = 1/(2*(n-2)!)。随着n增大,阶乘增长极快,这个概率会快速趋近于0。 - 一般来说,只要m和n的差距固定,符合条件的情况数增长速度远慢于总排列数n!,所以概率会随n增大趋近于0。
2. 当m固定(不随n变化,比如m=1、2、3)
当n足够大时,我们可以用泊松近似来分析:每封信投对的概率是1/n,n很大时,投对的信件数近似服从参数λ=1的泊松分布(期望为n*(1/n)=1)。此时至少m封投对的概率会趋近于一个固定值:
Σ_{k=m}^∞ (e^{-1} * 1^k)/k!
比如:
- m=1时,概率趋近于
1 - e^{-1} ≈ 63.2%; - m=2时,概率趋近于
1 - 2e^{-1} ≈ 26.4%; - m=3时,概率趋近于
1 - 5e^{-1}/2 ≈ 8.0%。
也就是说,n足够大时,这个概率会稳定在固定值附近,不会随n增大有明显变化。
3. 当m与n成比例增长(m = c*n,0 < c < 1)
因为投对信件数的期望始终是1,当n增大时,c*n会远大于1(只要c>0),根据大数定律,投对的信件数会集中在期望1附近,所以至少m封投对的概率会趋近于0——毕竟期望只有1,很难有比例这么高的信件投对。
4. 全对的情况(m=n)
概率为1/n!,随着n增大,这个概率会以阶乘的速度急剧下降,比如n=10时约为2.75e-7,n=20时已经小到几乎可以忽略不计。
内容的提问来源于stack exchange,提问作者Machinato




