পটভূমি
জন্মদিন প্যারাডক্স সম্ভাব্যতা তত্ত্ব উপেক্ষা করে একটি জনপ্রিয় সমস্যা (অধিকাংশ লোক এর) গাণিতিক স্বজ্ঞা হয়। সমস্যার বিবৃতিটি হ'ল:
এন জনগণ দেওয়া , তাদের মধ্যে কমপক্ষে দু'জনের একই জন্মদিন (বছরের উপেক্ষা করা) হওয়ার সম্ভাবনা কী।
পুরোপুরি লিপ দিনগুলি উপেক্ষা করে সাধারণত সমস্যাটি সরল করা হয়। এই ক্ষেত্রে, এন = 23 এর উত্তর হ'ল পি (23) 50 0.5072972 (সাধারণ উদাহরণ হিসাবে)। লিঙ্কযুক্ত উইকিপিডিয়া নিবন্ধটি ব্যাখ্যা করে যে কীভাবে এই সম্ভাবনাটি পৌঁছাবে। বিকল্পভাবে, এই নম্বরফিলি ভিডিওটি সত্যিই খুব ভাল কাজ করে।
তবে, এই চ্যালেঞ্জের জন্য আমরা এটি সঠিকভাবে করতে চাই এবং লিপ বছরগুলি উপেক্ষা করব না । এটি কিছুটা জটিল, কারণ এখন থেকে 29 শে ফেব্রুয়ারী যুক্ত করা দরকার, তবে এই বিশেষ জন্মদিনটি অন্য সকলের তুলনায় কম দেখা যায়।
আমরা পুরো লিপ বছরের নিয়মগুলিও ব্যবহার করব :
- যদি এক বছর 400 দ্বারা বিভাজ্য হয় তবে এটি একটি লাফ বছর।
- অন্যথায়, যদি কোনও বছর 100 দ্বারা বিভাজ্য হয় তবে এটি কোনও লিপ বছর নয়।
- অন্যথায়, যদি একটি বছর 4 দ্বারা বিভাজ্য হয় তবে এটি একটি লিপ বছর।
- অন্যথায়, এটি একটি লিপ বছর নয়।
বিভ্রান্ত? এর অর্থ হ'ল 1700, 1800, 1900, 2100, 2200, 2300 বছরগুলি লিপ বছর নয়, তবে 1600, 2000, 2400 (পাশাপাশি অন্য কোনও বছর 4 দ্বারা বিভাজ্য)। এই ক্যালেন্ডারটি প্রতি 400 বছর পরে পুনরাবৃত্তি হয় এবং আমরা সেই 400 বছরেরও বেশি সময় ধরে জন্মদিনের অভিন্ন বিতরণ করব।
এন = 23 এর জন্য সংশোধিত ফলাফলটি এখন পি (23) ≈ 0.5068761 ।
চ্যালেঞ্জ
একটি পূর্ণসংখ্যা দেওয়া 1 ≤ N < 100
, সম্ভাব্যতা নির্ধারণ করুন যে N
লিপ বছরের নিয়ম বিবেচনা করে কমপক্ষে দুজনের মধ্যে একই জন্মদিন হয়। ফলাফলটি একটি ভাসমান-পয়েন্ট বা স্থির-পয়েন্ট নম্বর হওয়া উচিত, কমপক্ষে 6 দশমিক স্থানে সঠিক। এটি অনুসরণযোগ্য শূন্যগুলি কাটাতে গ্রহণযোগ্য।
আপনি STDIN (বা নিকটতম বিকল্প), কমান্ড-লাইন আর্গুমেন্ট বা ফাংশন আর্গুমেন্টের মাধ্যমে ইনপুট নিয়ে কোনও প্রোগ্রাম বা ফাংশন লিখতে পারেন এবং ফলাফলটি STDOUT (বা নিকটতম বিকল্প), ফাংশন রিটার্ন মান বা ফাংশন (আউট) প্যারামিটারের মাধ্যমে আউটপুট দিতে পারেন।
আপনার সমাধানটি অবশ্যই সেকেন্ডের ব্যবধানে সমস্ত 99 ইনপুটগুলির আউটপুট উত্পাদন করতে সক্ষম হতে হবে। এটি মূলত টন নমুনাগুলির সাহায্যে মন্টি কার্লো পদ্ধতি বাতিল করার জন্য, তাই আপনি যদি খুব বেশি ধীর গতিময় ভাষায় মূলত দ্রুত এবং নির্ভুল অ্যালগরিদম ব্যবহার করেন তবে আমি এই নিয়মটি অবলম্বন করতে ইচ্ছুক।
পরীক্ষার মামলা
এখানে ফলাফলের সম্পূর্ণ সারণি দেওয়া হল:
1 => 0.000000
2 => 0.002737
3 => 0.008195
4 => 0.016337
5 => 0.027104
6 => 0.040416
7 => 0.056171
8 => 0.074251
9 => 0.094518
10 => 0.116818
11 => 0.140987
12 => 0.166844
13 => 0.194203
14 => 0.222869
15 => 0.252642
16 => 0.283319
17 => 0.314698
18 => 0.346578
19 => 0.378764
20 => 0.411063
21 => 0.443296
22 => 0.475287
23 => 0.506876
24 => 0.537913
25 => 0.568260
26 => 0.597796
27 => 0.626412
28 => 0.654014
29 => 0.680524
30 => 0.705877
31 => 0.730022
32 => 0.752924
33 => 0.774560
34 => 0.794917
35 => 0.813998
36 => 0.831812
37 => 0.848381
38 => 0.863732
39 => 0.877901
40 => 0.890932
41 => 0.902870
42 => 0.913767
43 => 0.923678
44 => 0.932658
45 => 0.940766
46 => 0.948060
47 => 0.954598
48 => 0.960437
49 => 0.965634
50 => 0.970242
51 => 0.974313
52 => 0.977898
53 => 0.981043
54 => 0.983792
55 => 0.986187
56 => 0.988266
57 => 0.990064
58 => 0.991614
59 => 0.992945
60 => 0.994084
61 => 0.995055
62 => 0.995880
63 => 0.996579
64 => 0.997169
65 => 0.997665
66 => 0.998080
67 => 0.998427
68 => 0.998715
69 => 0.998954
70 => 0.999152
71 => 0.999314
72 => 0.999447
73 => 0.999556
74 => 0.999645
75 => 0.999717
76 => 0.999775
77 => 0.999822
78 => 0.999859
79 => 0.999889
80 => 0.999913
81 => 0.999932
82 => 0.999947
83 => 0.999959
84 => 0.999968
85 => 0.999976
86 => 0.999981
87 => 0.999986
88 => 0.999989
89 => 0.999992
90 => 0.999994
91 => 0.999995
92 => 0.999996
93 => 0.999997
94 => 0.999998
95 => 0.999999
96 => 0.999999
97 => 0.999999
98 => 0.999999
99 => 1.000000
(অবশ্যই, পি (99) রাউন্ডিংয়ের কারণে মাত্র 1.0 । সম্ভাবনা P (367) অবধি ঠিক 1.0 এ পৌঁছাতে পারে না ।)