Zacznij terazZacznij za darmo

Błędne rozkłady wejściowe

W tym ćwiczeniu nadal pracujesz z przykładem liczby pi: A graph of a circle inside a square with randomly sampled points

Co się stanie, jeśli zmienisz wejściowy rozkład prawdopodobieństwa z ciągłego rozkładu jednostajnego (random.uniform()) na dyskretny rozkład jednostajny (random.randint())? Wyniki nie będą wiarygodne, ponieważ random.randint() losuje dyskretne liczby całkowite, podczas gdy random.uniform() losuje ciągłe liczby zmiennoprzecinkowe.

Zwróć uwagę na szacowaną wartość pi generowaną przez tę symulację. Ponieważ wybrano nieprawidłowy rozkład prawdopodobieństwa, wynik nie będzie zbyt dokładny! Wybór właściwych rozkładów prawdopodobieństwa jest kluczowy w symulacjach Monte Carlo – w kolejnych lekcjach omówimy różne rozkłady szczegółowo, abyś mógł pewnie dobierać właściwy.

random został już zaimportowany.

To ćwiczenie jest częścią kursu

Symulacje Monte Carlo w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Wylosuj współrzędne x i y z przedziału od -1 do 1, używając random.randint() zamiast poprawnej funkcji random.uniform() pokazanej w filmie.

Interaktywne ćwiczenie praktyczne

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

n = 10000
circle_points = 0 
square_points = 0 
for i in range(n):
    # Sample the x and y coordinates from -1 to 1 using random.randint()
    x = ____
    y = ____
    dist_from_origin = x**2 + y**2
    if dist_from_origin <= 1:
        circle_points += 1
    square_points += 1
pi = 4 * circle_points / square_points
print(pi)
Edytuj i uruchom kod