Bu sayma sorunudur: var muhtemel atamaları b için doğum günü n insanlar. Bunlardan let q ( k ; n , b ) hayır doğum günü daha paylaştığı edildiği atamaları sayı k insanlar ama aslında en az bir doğum günü tarafından paylaşılan k insanlar. Aradığımız olasılık , uygun k değerleri için q ( k ; n , b ) toplanarak ve sonucu b - n ile çarparak bulunabilir .bnbnq(k;n,b)kkq(k;n,b)kb−n
Bu sayılar tam olarak birkaç yüzden küçük değerleri için bulunabilir . Bununla birlikte, hiçbir basit formülü takip etmeyeceklerdir: doğum günlerinin atanma yöntemlerini dikkate almalıyız . Bunu genel bir gösteri yapmak yerine açıklayacağım. Let n = 4 (bu en küçük ilginç bir durumdur). Olasılıklar:nn=4
- Her insanın kendine özgü bir doğum günü vardır; kod {4}.
- Tam olarak iki kişi doğum gününü paylaşıyor; kod {2,1}.
- İki kişinin bir doğum günü, diğer ikisinin bir tane daha var; kod {0,2} 'dir.
- Üç kişi doğum gününü paylaşıyor; kod {1,0,1}.
- Dört kişi doğum gününü paylaşıyor; kod {0,0,0,1} 'dir.
Genellikle, bu kod sayar bir başlık olur k inci birçok farklı doğum günlerinin tam olarak nasıl paylaşıldığını eleman öngören k insanlar. Böylece, özellikle,{a[1],a[2],…}kthk
1a[1]+2a[2]+...+ka[k]+…=n.
Bu basit durumda bile, doğum günü başına en fazla iki kişinin erişebileceği iki yol olduğunu unutmayın: biri koduyla , diğeri ise { 2 , 1 } koduyla{0,2}{2,1} .
Herhangi bir koda karşılık gelen olası doğum atamalarının sayısını doğrudan sayabiliriz. Bu sayı üç terimin ürünüdür. Biri çok terimli bir katsayıdır; o bölümleme yollarından sayar içine insanlar bir [ 1 ] gruplarının 1 , bir [ 2 ] grupları 2 , vb. Grupların sırası önemli değil, çünkü biz bu multinomial katsayısı bölmek zorunda bir [ 1 ] ! bir [ 2 ] ! ⋯na[1]1a[2]2a[1]!a[2]!⋯; karşıt ikinci terimdir. Son olarak, grupları sıralayın ve her birine bir doğum günü verin: birinci grup için aday , ikincisi için b - 1 vb. Bu terimler, üçüncü terimi oluşturan, birlikte çarpılmalıdır. Bu "faktör ürünü" eşittir b ( a [ 1 ] + , bir [ 2 ] + ⋯ ) b ( m ) vasıtası b ( b - 1 ) ⋯ ( b - m + 1bb−1b(a[1]+a[2]+⋯)b(m) .b(b−1)⋯(b−m+1)
Bir model için sayımı ile ilgili açık ve oldukça basit özyineleme vardır model için sayımına { a [ 1 ] , ... , bir [ k - 1 ] } . Bu, n'nin mütevazı değerleri için sayımların hızlı bir şekilde hesaplanmasını sağlar . Spesifik olarak, bir [ k ] , tam olarak k tarafından paylaşılan bir [ k ] doğum tarihini temsil eder.{a[1],…,a[k]}{a[1],…,a[k−1]}na[k]a[k]kher biri. Bu işlemlerden sonra grupları k insanlardan çizilmiştir n yapılabilecek kişiler, x ayrı yollar (diyelim), bu desen ulaşma yollarını sayısını saymak için kalır { a [ 1 ] , ... , kalanlar arasında a [ k - 1 ] } . Bunu x ile çarpmak özyinelemeyi verir.a[k]knx{a[1],…,a[k−1]}x
Q ( k ; n , b ) ' nin kapalı bir formülü olduğundan şüpheliyim. q(k;n,b) , maksimum terimi k'ye eşit olan tüm bölümleri için sayıları toplayarak elde edilir . Bana bazı örnekler vereyim:nk
İle b=5 (beş olası doğum) ve (dört kişi) elde ederizn=4
q(1)q(2)q(3)q(4)=q(1;4,5)=360+60=120=420=80=5.
Örneğin, dörtten üç veya daha fazla insanın aynı "doğum gününü" paylaşması ( olası tarihten) eşittir ( 80 + 5 ) / 625 = 0.1365(80+5)/625=0.136 .
Başka bir örnek olarak, ve n = 23 atın . İşte en küçük k için q ( k ; 23 , 365 ) değerleri ( sadece altı işaret incir):b=365n=23q(k;23,365)k
k=1:k=2:k=3:k=4:k=5:k=6:k=7:k=8:0.492700.4945920.01253080.0001728441.80449E−61.48722E−89.92255E−115.45195E−13.
Bu tekniği kullanarak, 87 kişi için yaklaşık% 50, en az 87 kişi arasında üç yollu doğum günü çarpma olasılığı,% 50 oranında 187 kişi arasında dört yönlü çarpışma şansı ve% 50 şans olduğunu hesaplayabiliriz. 310 kişi arasında beş yönlü bir çarpışma. Bu son hesaplama birkaç saniye (Mathematica'da, yine de) sürmeye başlayacaktır, çünkü dikkate alınması gereken bölümlerin sayısı artmaya başlar. Büyük ölçüde için, yaklaşık bir değere ihtiyacımız var.n
Bir yaklaşım, beklentisiyle Poisson dağılımı aracılığıyla elde edilir , çünkü bir doğum günü tahsisatını, her biri n / b beklentisi olan bağımsız Poisson değişkenlerinden ( b ) beklenen doğum gününü görebiliriz: herhangi bir olası doğum günü için değişken n insanının kaçının o doğum gününü anlattığını açıklar . Bu nedenle maksimumun dağılımı yaklaşık olarak F ( k ) b'dir, burada F , Poisson CDF'dir. Bu kesin bir argüman değil, o yüzden biraz test yapalım. N = 23 , b için yaklaştırman/bbn/bnF(k)bFn=23 verirb=365
k=1:k=2:k=3:k=4:0.4987830.4968030.0141870.000225115.
Önceki ile karşılaştırıldığında, göreceli olasılıkların küçük olduklarında zayıf olabileceğini görebilirsiniz, ancak mutlak olasılıklar makul bir şekilde yaklaşık% 0,5'e yakındır. Geniş bir ve b aralığındaki testler , yaklaşımın genellikle bu malla ilgili olduğunu göstermektedir.nb
Kaydırmak için asıl soruyu düşünelim: n=10,000 (gözlem sayısı) ve b=1000000 (yaklaşık olası "yapı" sayısı). Maksimum "paylaşılan doğum günü" sayısı için yaklaşık dağılım
k=1:k=2:k=3:k=4:k>4:00.8475+0.1520+0.0004+<1E−6.
(Bu hızlı bir hesaplamadır.) Açıkça, bir yapıyı 10.000'den 10 kez görmek çok önemli olacaktır. Çünkü n ve hem büyük, oldukça iyi Burada iş yaklaşma bekliyoruz.b
Bu arada, Shane'in dediği gibi simülasyonlar faydalı kontroller sağlayabilir. Bir Mathematica simülasyonu, şuna benzer bir işlevle oluşturulur
simulate[n_, b_] := Max[Last[Transpose[Tally[RandomInteger[{0, b - 1}, n]]]]];
10.000 yinelemesini çalıştıran bu örnekte olduğu gibi daha sonra yinelenir ve özetlenir ,n=10000b=1000000 durum:
Tally[Table[simulate[10000, 1000000], {n, 1, 10000}]] // TableForm
Çıktı
2 8503
3 1493
4 4
Bu frekanslar, Poisson yaklaşımı tarafından öngörülenlerle yakından aynı fikirde.