有趣的概率算法--生日悖論


在算法導論書上看到個比較有意思的概率算法,在這里加上自己的理解分享下:

上次剛看同學發的朋友圈說道:兩個人同一間宿舍,而且同年同月同日生,這個緣分真的是醉了,當時我也是醉醉的,看了這個算法后才發現,屋里有23個人,那么就可以50%的概率生日是一樣的。

   是這樣子證明的:

   首先,假設屋子里有K個人,分別對他們編號1,2,3….k號。不考慮閏年的情況,那么一年就有n=365天,首先還是要假設生日是均勻分布在一年的n天中(喜歡在春天生就都在春天生這就不均勻了),然后還要假設兩個人生日相互獨立(什么雙胞胎那些還用得着算么),

那么兩個人同一天(具體的一天)生日的概率就1/n2 (生日的概率是1/n,兩個人同一天生日當然就相乘了~),那么兩個人同一天生日(365天隨便一天)的概率就是1/n (n1/n2相加)

   也就是說假如屋里面有兩個人,那么他們同一天生日的概率是1/365,那現在要解決的問題是,屋里要有多少人,才能使這個概率上升到1/2 ?

   用事件的對立面來求,假設事件P={屋里至少兩個人生日一樣}Q={屋里每個人生日都不一樣},那么P=1-Q

   那么知道Q的概率就能知道P的概率了,設BK為前K個人的生日都有一樣,Ai為前第i個人與前i-1一個人的生日都不一樣,那么就可以得到遞推式子

Bk=Bk-1^Ak

它的等價形式為

P{Bk}=P{Bk-1}P{ Ak | Bk-1}

應用遞歸式可以得到P{Bk}=P{B1} P{ A2 | B1} P{ A3 | B2}… P{ Ak-1 | Bk-2} P{ Ak | Bk-1}

                       =1*(n-1/n) (n-2/n)… (n-k+1/n)(B1是規定為1的,然后P{ A2 | B1}就是365中有一天已經給B1用了,那么就剩下n-1天了,所以概率為(n-1/n))

                   P{Bk}=1*(1-1/n) (1-2/n)… (1-k-1/n)

然后已知 1+x<=ex(兩個都是單調增函數,取0時為相等,過了就ex 大了,高中學的嘿嘿)

那么有1*( ) ( )… ( )<=(e-1/n)(e-2/n)…(e-(k-1/n))= (e-k(k-1)/2n))<=1/2

求得當n=365時,必有k>=23,所以結論是至少有23個人在一間屋子里,那么至少有兩個人生日相同的概率至少是1/2


免責聲明!

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



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