Tối nay, chồng sắp cưới đưa tôi đi ăn tối để chúc mừng sinh nhật. Khi chúng tôi ra ngoài, tôi nghe thấy Chúc mừng sinh nhật hát cho 5 vị khách khác nhau (bao gồm cả bản thân tôi), trong một nhà hàng có 50 người. Điều này khiến tôi băn khoăn - vấn đề sinh nhật ban đầu (tìm xác suất 2 người trong một phòng có N
chung ngày sinh nhật) rất đơn giản và dễ hiểu. Nhưng những gì về tính toán xác suất mà ít nhất k
mọi người trong số N
những người chia sẻ cùng một ngày sinh nhật?
Trong trường hợp bạn đang tự hỏi, xác suất có ít nhất 5 người trong tổng số 50 người có cùng ngày sinh là khoảng 1/10000.
Các thách thức
Cho hai số nguyên N
và k
, ở đó N >= k > 0
, đưa ra xác suất rằng ít nhất k
mọi người trong một nhóm N
người có cùng ngày sinh. Để đơn giản, hãy giả sử rằng luôn có 365 ngày sinh có thể và tất cả các ngày đều có khả năng như nhau.
Đối với k = 2
, này nắm đến vấn đề sinh nhật ban đầu, và xác suất là 1 - P(365, N)/(365)**N
(nơi P(n,k)
là số lượng hoán vị k-chiều dài hình thành từ n phần tử ). Đối với các giá trị lớn hơn k
, bài viết Wolfram MathWorld này có thể hữu ích.
Quy tắc
- Đầu ra phải có tính quyết định và càng chính xác càng tốt cho ngôn ngữ bạn đã chọn. Điều này có nghĩa là không có ước tính Monte Carlo hoặc xấp xỉ Poisson.
N
vàk
sẽ không lớn hơn số nguyên có thể biểu thị lớn nhất trong ngôn ngữ bạn đã chọn. Nếu ngôn ngữ bạn chọn không có tối đa cứng đối với số nguyên (ngoài các ràng buộc về bộ nhớ), thìN
vàk
có thể lớn tùy ý.- Các lỗi chính xác xuất phát từ sự thiếu chính xác của dấu phẩy động có thể bị bỏ qua - giải pháp của bạn sẽ giả sử các số float chính xác hoàn toàn, chính xác vô hạn.
Các trường hợp thử nghiệm
Định dạng: 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)