आज रात, मेरे मंगेतर ने मुझे अपना जन्मदिन मनाने के लिए डिनर पर ले गए। जब हम बाहर थे, मैंने 50 लोगों से भरे एक रेस्तरां में 5 अलग-अलग मेहमानों (खुद सहित) के लिए गाया हैप्पी बर्थडे सुना । यह मुझे आश्चर्यचकित कर गया - मूल जन्मदिन की समस्या (संभावना है कि एक कमरे में 2 लोग एक N
ही जन्मदिन साझा करते हैं) बहुत सरल और सीधा है। लेकिन इस संभावना की गणना के बारे में क्या है कि कम से कम k
लोगों में से N
एक ही जन्मदिन साझा करें?
यदि आप सोच रहे हैं, तो एक ही जन्मदिन को साझा करने वाले कुल 50 लोगों में से कम से कम 5 लोगों की संभावना लगभग 1/10000 है।
चुनौती
दो पूर्णांकों को देखते हुए N
और k
, जहां N >= k > 0
, उत्पादन संभावना कम से कम है कि k
के एक समूह में लोगों को N
लोगों को एक ही जन्मदिन का हिस्सा। चीजों को सरल रखने के लिए, मान लें कि हमेशा 365 संभावित जन्मदिन हैं, और सभी दिन समान रूप से होने की संभावना है।
के लिए k = 2
, इस मूल जन्मदिन समस्या करने पर निर्भर करता है, और संभावना है 1 - P(365, N)/(365)**N
(जहां P(n,k)
है n तत्वों से बनाई k-लंबाई क्रमपरिवर्तन की संख्या )। के बड़े मूल्यों के लिए k
, यह वुल्फ्राम मैथवर्ल्ड लेख उपयोगी साबित हो सकता है।
नियम
- आउटपुट निर्धारक होना चाहिए, और आपकी चुनी हुई भाषा के लिए यथासंभव सटीक होना चाहिए। इसका मतलब कोई मोंटे कार्लो अनुमान या पॉइसन अनुमान नहीं है।
N
औरk
आपकी चुनी हुई भाषा में सबसे बड़े प्रतिनिधित्व योग्य पूर्णांक से बड़ा नहीं होगा। यदि आपकी चुनी हुई भाषा में पूर्णांक (मेमोरी की बाधाओं से अलग) पर कोई कठिन अधिकतम नहीं है, तो हो सकता हैN
औरk
मनमाने ढंग से बड़ा हो।- फ़्लोटिंग-पॉइंट अशुद्धियों से उपजी सटीकता त्रुटियों को अनदेखा किया जा सकता है - आपके समाधान को पूरी तरह से सटीक, अनंत-सटीक फ़्लोट्स मान लेना चाहिए।
परीक्षण के मामलों
प्रारूप: 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)