Birthday Paradox (Nhật ký sinh nhật) là bài toán xác suất nổi tiếng: trong một nhóm người, xác suất ít nhất 2 người cùng ngày sinh (bỏ qua năm nhuận) cao hơn dự cảm.
Xác suất mọi người **khác** ngày sinh: P(khác) = 1 × (1-1/365) × (1-2/365) × ... × (1-(n-1)/365).
Xác suất **cùng** ngày sinh: P(cùng) = 1 - P(khác).
Công thức xấp xỉ số người n để P(cùng) ≥ p:
n ≈ √(2 × 365 × ln(1/(1-p))).
Ví dụ
Với p = 0.70 → n ≈ √(2×365×ln(1/0.3)) ≈ 30 người.
Ví dụ mã nguồn
#include <bits/stdc++.h>
using namespace std;
int findPeople(double p) {
return ceil(sqrt(2 * 365 * log(1/(1-p))));
}
int main() {
cout << findPeople(0.70); // 30
return 0;
}
Kết quả
30
Cần khoảng 30 người để xác suất trùng ngày sinh ≥ 70%.