Zacznij terazZacznij za darmo

Przykład z prawdopodobieństwem

W tym ćwiczeniu przyjrzysz się różnicy między próbkowaniem ze zwracaniem i bez zwracania. Obliczysz prawdopodobieństwo zdarzenia za pomocą symulacji, zmieniając metodę próbkowania, aby zobaczyć, jak wpływa ona na wynik.

Wyobraź sobie miskę pełną kolorowych cukierków – trzy niebieskie, dwa zielone i pięć żółtych. Wylosuj trzy cukierki, jeden po drugim, ze zwracaniem i bez zwracania. Twoim celem jest obliczenie prawdopodobieństwa, że wszystkie trzy cukierki będą żółte.

To ćwiczenie jest częścią kursu

Symulacje statystyczne w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj bowl jako listę zawierającą trzy niebieskie 'b', dwa zielone 'g' i pięć żółtych 'y' cukierków.
  • Pobierz próbkę trzech cukierków ze zwracaniem (sample_rep) i bez zwracania (sample_no_rep).
  • Dla próbki ze zwracaniem: jeśli w sample_rep nie ma cukierków 'b' ani 'g', zwiększ success_rep o jeden. Podobnie zwiększ success_no_rep, gdy w sample_no_rep nie ma cukierków 'b' ani 'g'.
  • Oblicz odpowiednie prawdopodobieństwa jako iloraz liczby sukcesów i liczby iteracji.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Set up the bowl
success_rep, success_no_rep, sims = 0, 0, 10000
bowl = list(____*3 + ____*2 + ____*5)

for i in range(sims):
    # Sample with and without replacement & increment success counters
    sample_rep = np.random.____(bowl, size=3, replace=____)
    sample_no_rep = np.random.____(bowl, size=3, replace=____)
    if ('b' not in sample_rep) & ('g' not in sample_rep) : 
        ____
    if ('b' not in sample_no_rep) & ('g' not in sample_no_rep) : 
        ____

# Calculate probabilities
prob_with_replacement = ____/sims
prob_without_replacement = ____/sims
print("Probability with replacement = {}, without replacement = {}".format(prob_with_replacement, prob_without_replacement))
Edytuj i uruchom kod