생일 역설은 확률 부분에서 아주 유명한 문제입니다.
문제 설명 − 생일 파티에 여러 사람이 있고, 같은 생일 충돌이 있는 사람도 있습니다. 생일이 같다는 것을 기준으로 대략적인 생일파티 인원수를 구해야 합니다.
확률에서 앞서 나갈 확률은 1/2이며, 동전이 몇 개 있고 앞면이 10개 나올 확률은 1/100 또는 0.001인 것과 같습니다.
개념을 이해합시다.
두 사람의 생일이 다를 확률은 $$\frac{364}{365}$$이며, 윤년이 아닌 경우 $$\lgroup1-\frac{1}{365}\rgroup$$입니다.피>
따라서 특정 생일의 확률을 가진 첫 번째 사람은 '1'이고 다른 사람의 경우에는 다릅니다.
P(다름) =$$1\times\lgroup1-\frac{1}{365}\rgroup\times\lgroup1-\frac{2}{365}\rgroup \times\lgroup1-\frac{3}{365}\rgroup\times\lgroup1-\frac{4}{365}\rgroup...$$
따라서
P(동일) =1 − P(다름)
예를 들어, 생일이 같은 사람의 수는 확률이 0.70입니다.
N =√2 × 365 × 로그(1-1/p)
N =√2 × 365 × 로그(1-1/0.70) =30
따라서 총 대략적인 번호. 생일이 같은 사람은 30명입니다.
예시
import math def findPeople(p): return math.ceil(math.sqrt(2*365*math.log(1/(1-p)))) print(findPeople(0.70))
출력
위의 코드를 실행하면 출력이 다음과 같이 생성됩니다.
30