Bu gece, nişanlım doğum günümü kutlamak için beni yemeğe çıkardı. Biz dışarıdayken, 50 kişi dolu bir restoranda (ben de dahil) 5 farklı konuk için sung kutlu duydum . Bu beni merak ettirdi - orijinal doğum günü sorunu (bir odada 2 kişinin Naynı doğum gününü paylaşma olasılığını bulmak ) çok basit ve anlaşılır. Peki ya en az kinsandan Ninsanların aynı doğum gününü paylaşma olasılığını hesaplamaya ne dersiniz ?
Merak ediyorsanız, aynı doğum gününü paylaşan toplam 50 kişiden en az 5 kişinin olasılığı yaklaşık 1/10000'dür.
Meydan okuma
İki tamsayı verildiğinde Nve knerede N >= k > 0, kbir grup insandaki en az bir kişinin Naynı doğum gününü paylaşma olasılığını çıktı . İşleri basitleştirmek için, her zaman 365 olası doğum günü olduğunu ve tüm günlerin eşit derecede olası olduğunu varsayın.
İçin k = 2bu orijinal doğum soruna kaynar ve olasılık, 1 - P(365, N)/(365)**N(burada P(n,k)bir N elemanlardan oluşturulan k uzunlukta permütasyon sayısı ). Daha büyük değerleri için k, bu Wolfram MathWorld makalesi yararlı olabilir.
kurallar
- Çıktı belirleyici olmalı ve seçtiğiniz dil için mümkün olduğunca doğru olmalıdır. Bu, Monte Carlo tahmini veya Poisson yaklaşımı olmadığı anlamına gelir.
Nvekseçtiğiniz dilde temsil edilebilir en büyük tam sayıdan daha büyük olamaz. Seçtiğiniz dil (kenara bellek kısıtlamaları itibaren) tamsayılar üzerinde hiçbir sabit maksimum varsa,Nvekkeyfi büyük olabilir.- Kayan noktalı yanlışlıklardan kaynaklanan doğruluk hataları göz ardı edilebilir - çözümünüz kusursuz, sonsuz hassasiyette yüzerlik almalıdır.
Test Durumları
Biçim: k, N -> exact fraction (float approximation)
2, 4 -> 795341/48627125 (0.016355912466550306)
2, 10 -> 2689423743942044098153/22996713557917153515625 (0.11694817771107766)
2, 23 -> 38093904702297390785243708291056390518886454060947061/75091883268515350125426207425223147563269805908203125 (0.5072972343239854)
3, 3 -> 1/133225 (7.5060987051979735e-06)
3, 15 -> 99202120236895898424238531990273/29796146005797507000413918212890625 (0.0033293607910766013)
3, 23 -> 4770369978858741874704938828021312421544898229270601/375459416342576750627131037126115737816349029541015625 (0.01270542106874784)
3, 88 -> 121972658600365952270507870814168157581992420315979376776734831989281511796047744560525362056937843069780281314799508374037334481686749665057776557164805212647907376598926392555810192414444095707428833039241/238663638085694198987526661236008945231785263891283516149752738222327030518604865144748956653519802030443538582564040039437134064787503711547079611163210009542953054552383296282869196147657930850982666015625 (0.5110651106247305)
4, 5 -> 1821/17748900625 (1.0259790386313012e-07)
4, 25 -> 2485259613640935164402771922618780423376797142403469821/10004116148447957520459906484225353834116619892120361328125 (0.0002484237064787077)
5, 50 -> 786993779912104445948839077141385547220875807924661029087862889286553262259306606691973696493529913926889614561937/7306010813549515310358093277059651246342214174497508156711617142094873581852472030624097938198246993124485015869140625 (0.00010771867165219201)
10, 11 -> 801/8393800448639761033203125 (9.542757239717371e-23)
10, 20 -> 7563066516919731020375145315161/4825745614492126958810682272575693836212158203125 (1.5672327389589693e-18)
10, 100 -> 122483733913713880468912433840827432571103991156207938550769934255186675421169322116627610793923974214844245486313555179552213623490113886544747626665059355613885669915058701717890707367972476863138223808168550175885417452745887418265215709/1018100624231385241853189999481940942382873878399046008966742039665259133127558338726075853312698838815389196105495212915667272376736512436519973194623721779480597820765897548554160854805712082157001360774761962446621765820964355953037738800048828125 (1.2030611807765361e-10)
10, 200 -> 46037609834855282194444796809612644889409465037669687935667461523743071657580101605348193810323944369492022110911489191609021322290505098856358912879677731966113966723477854912238177976801306968267513131490721538703324306724303400725590188016199359187262098021797557231190080930654308244474302621083905460764730976861073112110503993354926967673128790398832479866320227003479651999296010679699346931041199162583292649095888379961533947862695990956213767291953359129132526574405705744727693754517/378333041587022747413582050553902956219347236460887942751654696440740074897712544982385679244606727641966213694207954095750881417642309033313110718881314425431789802709136766451022222829015561216923212248085160525409958950556460005591372098706995468877542448525403291516015085653857006548005361106043070914396018461580475651719152455730181412523297836008507156692430467118523245584181582255037664477857149762078637248959905010608686740872875726844702607085395469621591502118462813086807727813720703125 (1.21685406174776e-07)