Zacznij terazZacznij za darmo

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

Zobacz kurs

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
Edytuj i uruchom kod