วันเกิดที่ผิดธรรมดาเป็นปัญหาที่มีชื่อเสียงมากในส่วนของความน่าจะเป็น คำชี้แจงปัญหาของปัญหานี้ระบุว่า
มีหลายคนในงานเลี้ยงวันเกิด บางคนมีการชนกันในวันเกิดเดียวกัน เราต้องหาจำนวนโดยประมาณ ของคนในงานวันเกิดที่มีวันเกิดวันเดียวกัน
ในความน่าจะเป็นที่เรารู้ว่าโอกาสที่จะก้าวไปข้างหน้าเท่ากับ 1/2 เหมือนกับว่าเรามีเหรียญอยู่บ้าง โอกาสที่จะได้รับ 10 หัวคือ 1/100 หรือ 0.001
เรามาทำความเข้าใจแนวคิดกันเถอะ
โอกาสที่คนสองคนจะมีวันเกิดต่างกันคือ
364/365 ซึ่งเท่ากับ 1-1/365 ในปีที่ไม่ใช่ปีอธิกสุรทิน
ดังนั้นเราสามารถพูดได้ว่าคนแรกที่มีโอกาสเกิดวันเกิดอย่างเฉพาะเจาะจงคือ '1' และสำหรับคนอื่น ๆ จะแตกต่างกันซึ่งก็คือ
P(แตกต่าง)=1×(1-1/365)× (1-2/365)× (1-3/365) × (1-4/365).......
ดังนั้น P(same)=1- P(ต่าง)
ตัวอย่างเช่น
จำนวนผู้ที่มีวันเกิดวันเดียวกันซึ่งความน่าจะเป็น 0.70
N=√2×365×log(1-1/p)
N=√2×365×log(1-1/0.70)=30
ดังนั้นจำนวนโดยประมาณทั้งหมด ของคนที่เกิดวันเดียวกันคือ 30
ตัวอย่าง
#include<bits/stdc++.h> using namespace std; int findPeople(double p){ return ceil(sqrt(2*365*log(1/(1-p)))); } int main(){ printf("%d",findPeople(0.70)); }
ผลลัพธ์
30