Problem urodzinowy
Teraz użyjemy symulacji, żeby rozwiązać słynny problem z teorii prawdopodobieństwa – problem urodzinowy. Na pierwszy rzut oka brzmi prosto: Ile osób musi znaleźć się w jednym pomieszczeniu, żeby prawdopodobieństwo, że dwie z nich mają te same urodziny, wynosiło co najmniej 50%?
Przy 366 osobach i roku mającym 365 dni mamy 100% pewność, że przynajmniej dwie z nich obchodzą urodziny tego samego dnia – ale zależy nam tylko na 50%. Symulacja daje nam elegancki sposób na rozwiązanie tego problemu.
Po ukończeniu tego ćwiczenia zaczniesz rozumieć, jak formułować zadania w ramach podejścia symulacyjnego.
To ćwiczenie jest częścią kursu
Symulacje statystyczne w Pythonie
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Draw a sample of birthdays & check if each birthday is unique
days = ____
people = 2
def birthday_sim(____):
sims, unique_birthdays = 2000, 0
for _ in range(sims):
draw = np.random.choice(days, size=____, replace=True)
if len(draw) == len(set(draw)):
unique_birthdays += 1
out = 1 - unique_birthdays / sims
return out