समस्या विवरण
बर्थडे पैराडॉक्स: कितने लोगों की जरूरत है ताकि उनमें से किन्हीं दो का जन्मदिन समान होने की संभावना दी गई प्रायिकता (p) से अधिक हो?
संभाव्यता सिद्धांत
अलग-अलग जन्मदिन की संभावना:
P(अलग) = 1 × (1 - 1/365) × (1 - 2/365) × ... × (1 - (n-1)/365)
समान जन्मदिन की संभावना:
P(समान) = 1 - P(अलग)
सन्निकटन सूत्र
छोटी संभावनाओं के लिए:
n ≈ √(2 × 365 × ln(1/(1-p)))
उदाहरण: p = 0.70
n = √(2 × 365 × ln(1/0.30)) ≈ √(730 × 1.204) ≈ √879 ≈ 29.6 → 30 लोग
पायथन कार्यान्वयन
import math
def findPeople(p):
"""संभावना p के लिए आवश्यक लोगों की न्यूनतम संख्या"""
return math.ceil(math.sqrt(2 * 365 * math.log(1 / (1 - p))))
# टेस्ट
for prob in [0.50, 0.70, 0.90, 0.99]:
n = findPeople(prob)
print(f"P = {prob:.0%} → कम से कम {n} लोग चाहिए")
# सटीक गणना (लूप)
def exact_people(p):
prob_diff = 1.0
n = 0
while 1 - prob_diff < p:
n += 1
prob_diff *= (365 - n + 1) / 365
return n
print("\nसटीक गणना:")
for prob in [0.50, 0.70, 0.90, 0.99]:
print(f"P = {prob:.0%} → {exact_people(prob)} लोग")
आउटपुट
P = 50% → कम से कम 23 लोग चाहिए P = 70% → कम से कम 30 लोग चाहिए P = 90% → कम से कम 41 लोग चाहिए P = 99% → कम से कम 57 लोग चाहिए सटीक गणना: P = 50% → 23 लोग P = 70% → 30 लोग P = 90% → 41 लोग P = 99% → 57 लोग
रोचक तथ्य: केवल 23 लोगों में 50% संभावना होती है कि दो का जन्मदिन समान हो!