章节出错了,点此刷新,刷新后小编会在两分钟内校正章节内容,请稍后再试。
生日問題
在概率論中,生日問題要求在一組n個隨機選擇的人中,至少有兩個人共享一個生日的概率。生日悖論是,與直覺相反,在一個只有23人的小組中,共享生日的概率超過50%。
生日悖論是一個真實的悖論:它看起來是錯誤的,但實際上是正確的。雖然只需要23個人才能達到50%的共享生日概率似乎令人驚訝,但考慮到將在每對可能的個人之間進行生日比較,這一結果變得更加直觀。有23個人,有(23×22)/2=253對要考慮,遠遠超過一年中天數的一半。
生日問題的實際應用包括一種稱為生日攻擊的密碼攻擊,它使用這種概率模型來降低發現哈希函數衝突的複雜性,以及計算哈希中存在的哈希衝突的近似風險。給定規模的人口。
這個問題通常歸因於哈羅德·達文波特在1927年左右,儘管他當時沒有發表。達文波特沒有聲稱自己是它的發現者,“因為他無法相信它沒有早先被陳述過”。生日問題的第一個版本是理查德·馮·米塞斯在1939年出版的。
計算概率
從排列的角度來看,讓事件A是找到一組沒有任何重複生日的23人的概率。其中事件B是找到一組23人且至少有兩個人生日相同的概率,P(B)=1-P(A)。P(A)是生日總數的比率,Vnr,沒有重複和順序問題(例如,對於一組2人,mm/dd生日格式,一個可能的結果是{{01/02,05/20},{05/20,01/02},{10/02,08/04},...}除以具有重複和順序問題的生日總數,Vt,因為它是實驗結果的總空間(例如2人,一個可能的結果是{{01/02,01/02},{10/02,08/04},...}.所以Vnr和Vt是排列。Vnr=n!(n−k)!=365!(365−23)!Vt=nk=36523P(A)=VnrVt≈0.492703P(B)=1−P(A)≈1−0.492703≈0.507297(50.7297%)
可以解決生日問題的另一種方法是詢問在一組n個人中至少有兩個生日相同的近似概率。為簡單起見,閏年、雙胞胎、選擇偏差以及出生率的季節性和每週變化通常被忽略,而是假設有365個可能的生日,並且每個人的生日同樣可能是其中任何一個這些天,獨立於小組中的其他人。對於獨立的生日,生日的均勻分佈是最小化兩個人生日相同的概率的分佈;任何不均勻都會增加這種可能性。1967年,MurrayKlamkin首次解決了一年中每天發生的出生數量不均勻的問題。碰巧的是,現實世界的分佈產生的臨界大小為23,達到50%。
目標是計算P(A),即房間中至少兩個人生日相同的概率。但是,計算P(A′)更簡單,即房間中沒有兩個人生日相同的概率。那麼,因為A和A'是僅有的兩種可能性,並且也是互斥的,所以P(A)=1−P(A')。
這是23人的P(A)的計算。讓這23個人從1到23編號。所有23人的生日不同的事件與第2個人與第1個人的生日不同,第3個人與第1個人的生日不同的事件相同第1個人或第2個人,以此類推,最後,第23個人的生日與第1到22個人中的任何一個都不相同。讓這些事件稱為事件2、事件3,等等。事件1是人1過生日的事件,其發生概率為1。可以使用條件概率來計算這些事件的結合:事件2的概率是364/365,因為人2可能有除人1生日之外的任何生日。類似地,鑑於事件2發生,事件3的概率是363/365,因為人3可能有任何生日人1和2尚未過的生日。這一直持續到最後事件23的概率,因為所有先前的事件都發生了是343/365。最後,條件概率原理意味著P(A')等於這些個體概率的乘積:
P(A')=365365×364365×363365×362365×⋯×343365
等式(1)的項可以被收集到:
P(A′)=(1365)23×(365×364×363×⋯×343)
計算方程(2)得出P(A′)≈0.492703
因此,P(A)≈1−0.492703=0.507297(50.7297%)。
這個過程可以推廣到一組n個人,其中p(n)是n個人中至少有兩個共享生日的概率。首先計算所有n個生日不同的概率p(n)更容易。根據鴿巢原理,當n>365時,p(n)為零。當n≤365時:
p¯(n)=1×(1−1365)×(1−2365)×⋯×(1−n−1365)=365×364×⋯×(365−n+1)365n=365!365n(365−n)!=n!⋅(365n)365n=365Pn365n
在哪裡!是階乘運算符,(365
ñ)是二項式係數,kPr表示置換。
這個等式表達了這樣一個事實,第一個人沒有人可以分享生日,第二個人不能和第一個人有相同的生日(364/365),第三個不能與前兩個中的任何一個生日相同(363/365),一般情況下,第n個生日不能與之前的n-1個生日相同。
n個人中至少有兩個生日相同的事件與所有n生日不同的事件互補。因此,它的概率p(n)為
p(n)=1-p¯(n).
下表顯示了其他一些n值的概率(對於該表,閏年的存在被忽略,並且假設每個生日的可能性相同):
np(n)
10.0%
52.7%
1011.7%
2041.1%
2350.7%
3070.6%
4089.1%
5097.0%
6099.4%
7099.9%
7599.97%
10099.99997%
20099.9999999999999999999999999998%
300(100-6×10-80)%
350(100-3×10-129)%
365(100-1.45×10-155)%
≥366100%
閏年。如果我們在公式中用366代替365p¯(n),類似的計算表明,對於閏年,匹配概率超過50%所需的人數也是23;在這種情況下,匹配的概率是50.6%。
近似值
指數函數的泰勒級數展開(常數e≈2.718281828)
eX=1+X+X22!+⋯
為ex提供一階近似值|X|≪1:
eX≈1+X.
要將這個近似應用於為p(n)導出的第一個表達式,設置x=-一個/365.因此,
e-一個/365≈1-一個365.
然後,將p(n)公式中的每一項替換為非負整數,直到a=n−1,例如,當a=1時,
e-1/365≈1-1365.
p(n)的第一個表達式可以近似為
p¯(n)≈1⋅e-1/365⋅e-2/365⋯e-(n−1)/365=e−(1+2+⋯+(n−1))/365=e−(n(n−1)/2)/365=e−n(n−1)/730.
所以,
p(n)=1-p¯(n)≈1-e-n(n-1)/730.
更粗略的近似由下式給出
p(n)≈1-e-n2/730,
如圖所示,它仍然相當準確。
根據近似,同樣的方法可以應用於任意數量的“人”和“天”。如果不是365天有d,如果有n個人,並且如果n≪d,那麼使用與上述相同的方法,我們得到的結果是如果p(n,d)是n中至少有兩個的概率人們在一組d天中共享相同的生日,然後:
p(n,d)≈1−e−n(n−1)/(2d)≈1−e−n2/(2d).
一個簡單的冪運算
任意兩個人生日不同的概率是364/365.在有n個人的房間裡,有(n
2)=n(n-1)/2成對的人,即(n
2)事件。沒有兩個人生日相同的概率可以通過假設這些事件是獨立的並因此將它們的概率相乘來近似得出。簡而言之364/365可以自己相乘(n
2)次,這給了我們
p¯(n)≈(364365)(n2).
由於這是沒有人生日相同的概率,那麼某人生日相同的概率是
p(n)≈1-(364365)(n2).
泊松近似
對23人組應用二項式的泊松近似,
Poi((232)365)=Poi(253365)≈Poi(0.6932)
所以
Pr(X>0)=1-Pr(X=0)≈1-e-0.6932≈1-0.499998=0.500002。
結果如前所述超過50%。這個近似值與上面基於泰勒展開式的近似值相同,它使用eX≈1+X.
平方近似
可用於心算的一個好的經驗法則是關係
p(n)≈n22m
也可以寫成
n≈2m×p(n)
這適用於小於或等於的概率1/2.在這些等式中,m是一年中的天數。
例如,要估計一個項目所需的人數1/2共同生日的機會,我們得到
n≈2×365×12=365≈19
這與23的正確答案相距不遠。
人數的近似值
這也可以使用以下公式來近似計算需要至少一個1/2匹配機率:
n≈12+14+2×ln(2)×365=22.999943。
這是一個很好的近似結果,一個事件與1/ķ概率會有1/2如果重複kln2次,至少發生一次的機會。
概率表
十六進製字符串的長度不。
位數
(b)_散列空間
大小
(2b)散列元素的數量,使得至少一個散列衝突的概率≥p
p=10-18p=10-15p=10-12p=10-9p=10-6p=0.001p=0.01p=0.25p=0.50p=0.75
8324.3×1092222.9932.9×1039.3×1035.0×1047.7×1041.1×105
(10)(40)(1.1×1012)2221.5×1034.7×1041.5×1058.0×1051.2×1061.7×106
(12)(48)(2.8×1014)22247.5×1022.4×1047.5×1052.4×1061.3×1072.0×1072.8×107
16641.8×10196.11.9×1026.1×1031.9×1056.1×1061.9×1086.1×1083.3×1095.1×1097.2×109
(24)(96)(7.9×1028)4.0×1051.3×1074.0×1081.3×10104.0×10111.3×10134.0×10132.1×10143.3×10144.7×1014
321283.4×10382.6×10108.2×10112.6×10138.2×10142.6×10168.3×10172.6×10181.4×10192.2×10193.1×1019
(48)(192)(6.3×1057)1.1×10203.5×10211.1×10233.5×10241.1×10263.5×10271.1×10286.0×10289.3×10281.3×1029
642561.2×10774.8×10291.5×10314.8×10321.5×10344.8×10351.5×10374.8×10372.6×10384.0×10385.7×1038
(96)(384)(3.9×10115)8.9×10482.8×10508.9×10512.8×10538.9×10542.8×10568.9×10564.8×10577.4×10571.0×1058
1285121.3×101541.6×10685.2×10691.6×10715.2×10721.6×10745.2×10751.6×10768.8×10761.4×10771.9×1077
此表中較淺的字段顯示在給定一定大小的哈希空間(以位(行)為單位)的情況下,實現給定的衝突概率(列)所需的哈希數。使用生日類比:“哈希空間大小”類似於“可用天數”,“碰撞概率”類似於“共享生日概率”,“所需散列元素數”類似於“所需人數”一組”。還可以使用此圖表來確定所需的最小散列大小(給定散列的上限和錯誤概率)或衝突概率(對於固定數量的散列和錯誤概率)。
為了比較,10-18至10-15是典型硬盤的不可糾正誤碼率。理論上,128位散列函數,例如MD5,應該保持在該範圍內,直到大約8.2×1011個文檔,即使它可能的輸出更多。
概率的上限和人數的下限
下面的論點改編自PaulHalmos的論點。
如上所述,沒有兩個生日重合的概率是
1−p(n)=p¯(n)=∏k=1n−1(1−k365).
與前面的段落一樣,興趣在於最小的n,使得p(n)>1/2;或等效地,最小的n使得p(n)<1/2.
在上面的表達式中使用不等式1-x<e-x我們替換1-ķ/365與電子-k⁄365。這產生
p¯(n)=∏k=1n−1(1−k365)<∏k=1n−1(e−k/365)=e−n(n-1)/730.
因此,上面的表達式不僅是一個近似值,而且是p(n)的一個上界。不平等
e-n(n-1)/730<12
暗示p(n)<1/2.求解n給出
n2-n>730ln2.
現在,730ln2約為505.997,略低於506,當n=23時達到n2-n的值。因此,23人就足夠了。順便說一下,求解n2−n=730ln2得到上面引用的FrankH.Mathis的近似公式。
此推導僅表明最多需要23人才能確保生日匹配的機會均等;它留下了n為22或更少的可能性也可以工作。
概括
任意天數
給定有d天的一年,廣義生日問題要求最小數n(d)使得在一組n個隨機選擇的人中,生日重合的概率至少為50%。換句話說,n(d)是最小整數n使得
1-(1-1d)(1-2d)⋯(1-n-1d)≥12.
因此,經典生日問題對應於確定n(365)。此處給出了n(d)的前99個值(OEIS中的序列A033810):
d1-23–56–910-1617–2324–3233–4243–5455–6869–8283–99
n(d)23456789101112
類似的計算表明,當d在341–372範圍內時,n(d)=23。
許多n(d)的界限和公式已經發表。對於任何d≥1,數n(d)滿足
3-2ln26<n(d)-2dln2≤9-86ln2.
這些界限是最優的,因為序列n(d)−√2dln2任意接近
3-2ln26≈0.27,
雖然它有
9-86ln2≈1.28
作為最大值,取d=43。
在大多數情況下,邊界足夠緊密,可以給出n(d)的精確值。例如,對於d=365,這些界限意味著22.7633<n(365)<23.7736並且23是該範圍內的唯一整數。一般來說,從這些界限可以得出n(d)總是等於
⌈2dln2⌉或者⌈2dln2⌉+1
其中⌈·⌉表示上限函數。公式
n(d)=⌈2dln2⌉
適用於所有整數d的73%。公式
n(d)=⌈2dln2+3-2ln26⌉
幾乎所有的d都成立,即,對於一組漸近密度為1的整數d。
公式
n(d)=⌈2dln2+3−2ln26+9−4(ln2)2722dln2⌉
適用於所有d≤1018,但推測這個公式的反例是無限多的。
公式
n(d)=⌈2dln2+3−2ln26+9−4(ln2)2722dln2-2(ln2)2135d⌉
適用於所有d≤1018,並且推測該公式對所有d都成立。
超過兩個人共享一個生日
可以將問題擴展為詢問一組中需要多少人才能有大於50%的概率至少3/4/5/等。組的生日相同。
前幾個值如下:>50%的概率3人共享一個生日-88人;>50%的概率4人共享一個生日-187人(OEIS中的序列A014088)。
共享生日的概率(碰撞)
生日問題可以概括如下:
給定從範圍為[1,d]的離散均勻分佈中抽取的n個隨機整數,至少兩個數字相同的概率p(n;d)是多少?(d=365給出了通常的生日問題。)
可以使用上面給出的相同參數得出通用結果。
p(n;d)={1−∏k=1n−1(1−kd)n≤d1n>d≈1−e−n(n−1)2d≈1−(d−1d)n(n-1)2
相反,如果n(p;d)表示從[1,d]中抽取的隨機整數個數,以獲得至少兩個數相同的概率p,則
n(p;d)≈2d⋅ln(11-p).
這個更一般意義上的生日問題適用於散列函數:在發生衝突之前可以生成的N位散列的預期數量不是2N,而是只有2N/2。這被加密哈希函數生日攻擊所哈希表的少量衝突在所有實際用途中都是不可避免的原因。
生日問題背後的理論被ZoeSchnabel以捕獲-再捕獲統計的名義用於估計湖泊中魚類種群的大小。
泛化到多種類型的人
基本問題認為所有試驗都是一種“類型”。生日問題已被推廣到考慮任意數量的類型。[18]在最簡單的擴展中,有兩種類型的人,比如m個男人和n個女人,問題變成了描述至少一個男人和一個女人共享生日的概率。(兩個男人或兩個女人共享的生日不算在內。)這裡沒有共享生日的概率是
p0=1dm+n∑i=1m∑j=1nS2(m,i)S2(n,j)∏k=0i+j-1d-ķ
其中d=365和S2是第二類斯特林數。因此,所需的概率為1-p0。
生日問題的這種變化很有趣,因為總人數m+n沒有唯一的解決方案。例如,對於16名男性和16名女性的32名成員組和43名女性和6名男性的49名成員組,通常實現50%的概率值。
其他生日問題
第一場比賽
一個相關的問題是,當人們一次進入一個房間時,哪一個最有可能是第一個與已經在房間裡的人生日相同的人?也就是說,p(n)−p(n−1)的最大值是多少?答案是20——如果第一場比賽有獎品,那麼最好的排位是第20位。
和你一樣的生日
在生日問題中,兩個人都沒有提前選擇。相比之下,在有n個其他人的房間中,某人與某個特定人(例如,您)生日相同的概率q(n)由下式給出
q(n)=1-(365-1365)n
對於一般d
q(n;d)=1-(d-1d)n.
在d=365的標準情況下,代入n=23得到大約6.1%,這小於16次中的1次機會。對於超過50%的機會,一屋子n人中的一個人與您的生日相同,n至少需要為253。這個數字明顯高於365/2=182.5:原因是房間裡的其他人可能有一些生日匹配。
生日相同的人數
對於n個人中的任何一個人,他或她與其他人共享生日的概率是q(n-1;d),如上所述。現在可以通過將該概率乘以人數(n)輕鬆計算出具有共同(非唯一)生日的預期人數,因此它是:
n(1-(d-1d)n-1)
(由於指標變量的期望值是線性的,所以可以通過這種方式進行乘法)。這意味著具有非共享(唯一)生日的預期人數為:
n(d-1d)n-1
對於與三個、四個等其他人共享的預期人數,可以得出類似的公式。
到每個生日為止的人數
在每個生日到來之前需要的預期人數稱為優惠券收集者問題。它可以通過計算n*Hn,在哪裡Hn是個n-次諧波數。對於365個可能的日期(生日問題),答案是2365。
近場比賽
另一個概括是,如果有d個同樣可能的生日,則要求在一組n個人中找到至少一對的概率,這些人的生日在彼此的k個日曆日內。
p(n,k,d)=1−(d−nk−1)!dn-1(d-n(ķ+1))!
下表給出了需要的人數,以使某對生日相隔k天或更短的概率高於50%:
ķn
代表d=365
023
114
211
39
48
58
67
77
因此,在僅由七個隨機人組成的小組中,他們中的兩個人更有可能在一周內過生日。
有一定生日的天數
至少有一個生日的天數
不同生日的預期數量,即至少一個人生日的天數,是:
d-d(d-1d)n
這是從沒有人生日的預期天數得出的:
d(d-1d)n
這是從某一天不是某人生日的概率得出的,((d-1)/d)n,由於期望值的線性,很容易求和。
例如,對於d=365,當有22個人時,您應該預期大約有21個不同的生日,或者當有50個人時,您應該預期有46個不同的生日。當有1000人時,將有大約341個不同的生日(24個無人認領的生日)。
至少有兩個生日的天數
以上可以從任何特定日子生日人數的分佈概括出來,這是一個概率為1/d的二項分佈。然後將相關概率乘以d將得出預期的天數。例如,共享的預期天數;即至少有兩個(即不是零也不是一個)人的生日是:
d-d(d-1d)n-d⋅(n1)(1d)1(d−1d)n−1=d−d(d−1d)n−n(d−1d)n−1
重複生日的人數
從[1,d]中隨機選擇的第k個整數將重複至少一個先前的選擇的概率等於上面的q(k-1;d)。選擇將重複先前選擇的預期總次數,因為選擇了n個這樣的整數等於
∑ķ=1nq(k−1;d)=n−d+d(d−1d)n
可以看出這等於人數減去不同生日的預期數量。
至少獲得一個共享生日的平均人數
在生日問題的另一種表述中,人們要求找到一對生日相同的人所需的平均人數。如果我們考慮概率函數Pr[n人至少有一個共同的生日],這個平均值決定了分佈的平均值,而不是通常的公式,它要求中位數。這個問題與DonaldKnuth在他的著作TheArtofComputerProgramming中分析的幾種散列算法有關。可以證明如果一個人從一個大小為M,某個個體的第一次重複抽樣所需的試驗次數具有期望值n=1+Q(M),其中
Q(M)=∑ķ=1MM!(M-ķ)!Mķ.
功能
Q(M)=1+M-1M+(M-1)(M-2)M2+⋯+(M-1)(M-2)⋯1MM-1
已由SrinivasaRamanujan研究並具有漸近擴展:
Q(M)∼πM2−13+112π2M−4135M+⋯.
在M=365天的情況下,找到同一對生日的平均人數為n=1+Q(M)≈24.61659,略多於23,即50%的機會所需的人數。在最好的情況下,兩個人就足夠了;在最壞的情況下,需要最大可能的人數M+1=366人;但平均只需要25人
使用指標隨機變量的分析可以提供對該問題的更簡單但近似的分析。對於房間中k人的每一對(i,j),我們定義指標隨機變量Xij,對於1≤i≤j≤ķ,經過
Xij=I{personiandpersonjhavethesamebirthday}={1,ifpersoniandpersonjhavethesamebirthday;0,否則。
B[Xij]=Pro{personI和personj生日相同}=1/n
設X是一個隨機變量,計算生日相同的個體對。
X=∑I=1ķ∑j=I+1ķXIj
B[X]=∑I=1ķ∑j=i+1kE[Xij]=(k2)1n=k(k−1)2n
對於n=365,如果k=28,則預期生日相同的人數為(28⋅27)/(2⋅365)≈1.0356。因此,我們可以預期至少有一對至少有28人。
這個問題可以從澳大利亞總理名單中得到一個非正式的論證,截至2017年已經有29位總理名單。,其中第24任總理保羅·基廷和第一任總理埃德蒙·巴頓同享生日,1月18日。
2014年世界杯,32支球隊各有23名球員。對官方名單的分析表明,16支球隊有一對生日相同的球員,這5支球隊中有兩對:阿根廷、法國、伊朗、韓國和瑞士各有兩對,澳大利亞、波斯尼亞和黑塞哥維那、巴西、喀麥隆、哥倫比亞、洪都拉斯、荷蘭、尼日利亞、俄羅斯、西班牙和美國各有一對。
Voracek、Tran和Formann表明,大多數人明顯高估了達到給定生日相同概率所需的人數,並且明顯低估了在給定特定樣本量時人們生日相同的概率.進一步的結果表明,心理學專業的學生和女性在這項任務上的表現要好於賭場遊客/人員或男性,但對他們的估計缺乏信心。
逆向問題
相反的問題是,對於一個固定的概率p,找到概率p(n)小於給定p的最大n,或者找到概率p(n)大於給定p的最小n。
採用上述公式d=365,有
n(p;365)≈730ln(11-p).
下表給出了一些示例計算。
pn↓_p(n↓)↑_p(n↑)
0.010.14178√365=2.7086420.0027430.00820
0.050.32029√365=6.1191660.0404670.05624
0.10.45904√365=8.7700280.0743490.09462
0.20.66805√365=12.76302120.16702130.19441
0.30.84460√365=16.13607160.28360170.31501
0.51.17741√365=22.49439220.570230.50730
0.71.55176√365=29.64625290.68097300.70632
0.81.79412√365=34.27666340.79532350.81438
0.92.14597√365=40.99862400.89123410.90315
0.952.475√365=46.76414460.948250.957
0.993.03485√365=57.98081570.99012580.99166
一些超出範圍的值已被著色以表明近似值並不總是準確的。
分區問題
一個相關的問題是分區問題,它是運籌學中背包問題的一個變體。有些砝碼放在天平上;每個重量是從一克到一百萬克(一噸)。問題是是否可以通常(即概率接近1)在左右臂之間轉移權重以平衡天平。(如果所有重量的總和是奇數克,允許相差一克。)如果只有兩個或三個重量,答案很明顯是否定的;儘管有一些組合有效,但大多數隨機選擇的三個權重組合都不起作用。如果權重很多,答案顯然是肯定的。問題是,有多少才足夠?也就是說,有多少權重使得平衡它們的可能性與不可能平衡的可能性相同?
很多時候,人們的直覺是答案在上面100000。大多數人的直覺是在幾千或幾萬,而其他人則認為它至少應該在數百。正確答案是23。
原因是正確的比較是權重劃分為左右的數量。N個權重有2N-1個不同的分區,左和減去右和可以認為是每個分區的新隨機量。權重之和的分佈近似為高斯分佈,峰值位於500000N和寬度1000000√N,所以當2N-1約等於1000000√N發生轉變。223−1大約是400萬,而分佈的寬度只有500萬。
在小說中
ArthurC.Clarke於1961年出版的小說《月塵的墜落》包含一段,其中主要人物被無限期地困在地下,正在慶祝生日,並發現自己正在討論生日問題的有效性。正如一位物理學家乘客所說:“如果你有超過24人的團隊,那麼機率甚至比其中兩個人生日相同的機率還要高。”最終,在目前的22個角色中,有兩個角色的生日相同,即5月23日。
筆記
在他的自傳中,哈爾莫斯批評了生日悖論經常以數值計算的形式出現。他認為在使用更抽象的數學概念時,應該以它為例子。他寫了:
推理基於所有數學學生都應該隨時使用的重要工具。生日問題曾經是純粹思想優於機械操作的一個絕妙例證。不等式可以在一兩分鐘內得到,而乘法需要更長的時間,而且更容易出錯,無論儀器是鉛筆還是老式台式電腦。計算器不產生的是理解力,或數學工具,或更高級、更廣義的理論的堅實基礎。