python3與機率論 生日相同「同生緣」模型

題目:假設每人的生日在一年365天是等可能的,那麼N個人有任意兩人生日相等的概率是多大。

python3與概率論 生日相同“同生緣”模型

解答:

首先,算出N個人生日的所有可能性,也就是樣本空間,為N個365相乘,即365**N,我們記這個數為A。

接著算出任何兩個人生日的各不相同事件的樣本數量,365*364*363*...*(365-N+1),我們記這個數為B。

然後通過算補集的方法,1-B/A 得出N個人有任意兩人生日相等的概率。

python3實現:

算法十分清晰,我們來看一下代碼:

python3與概率論 生日相同“同生緣”模型

我們這裡使用了可變參數,可以一次輸入多種人數情況下概率的情況。下面是返回的字典,人數和概率對應的情況。

python3與概率論 生日相同“同生緣”模型

我們來看格式化輸出後結果

python3與概率論 生日相同“同生緣”模型

我們看到50個人中有兩個人生日相同的概率達到了97%,這就是為什麼一個50個人的班級幾乎一定會有兩個人生日相同,以前感到很驚奇的“同生緣”,其實是很平常的情況。這就是那句諺語的體現:seeing is not believing。


分享到:


相關文章: