取快遞的數學問題:手機尾號的重復概率


學校門口,四位手機尾號取快遞。問:設有 \(n\) 個包裹,則存在兩個包裹號碼(收件人手機尾號,假設均勻分布)相同的概率 \(P(n)\) 是多少?

答曰:手機尾號一共有 \(10^4=10000\) 個,所以 \( P(n)=\frac{A_{10000}^n}{(10000)^n} \), 其中 \(A_n^r\) 為排列數。

求出表達式非常簡單,然而計算具體值時卻遇到了麻煩:分子和分母都太大了,IEEE 754 浮點數受不了了,直接扔給我個 Infinity.

怎么辦呢?把排列數展開,取對數,乘除變加減:

\( \log{P(n)} \)

\( = \log{\frac{A_{10000}^n}{(10000)^n}} \)

\( =\log{A_{10000}^n}-n\log{10^4} \)

\( =\log{10^4(10^4-1)\cdots(10^4-n+1)}-4n\log{10} \)

\( =\log{10^4}+\log{(10^4-1)}+\cdots+\log{(10^4-n+1)}-4n\log{10} \)

不想這么麻煩的話,也有很精確的階乘近似公式可用(這里就不限於整數了):

\( \left\{\begin{matrix} n! = \Gamma(n+1) \\ \ln\Gamma(z) \approx \tfrac{1}{2} \left[\ln(2\pi) - \ln z\right] + z\left[\ln\left(z + \frac{1}{12z - \frac{1}{10z}}\right) - 1\right] \end{matrix}\right. \)

總之,最后能算出來具體的數。下面列出 n 取某些特殊值時的概率:

n 20 40 60 80 100 120 140 160 180 200
P(n) 2% 8% 16% 27% 39% 51% 62% 72% 80% 87%

\([20, 200]\) 區間內 \(y=P(x)\) 的函數圖像如下(只有 \(x\) 等於整數的點有實際意義):

看起來有點反直覺:重復的概率怎么這么大?確實這么大,只要手機尾號是均勻分布的。

不過,自己的號跟某個人的號一樣(存在某個人跟自己同號)的概率並不大:

所以,重號的概率不小,但自己碰上的概率就很小了。(不過那大得嚇人的重號概率還是很反直覺……)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM