Błędne rozkłady wejściowe
W tym ćwiczeniu nadal pracujesz z przykładem liczby pi:

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
Instrukcje do ćwiczenia
- Wylosuj współrzędne
xiyz przedziału od -1 do 1, używającrandom.randint()zamiast poprawnej funkcjirandom.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)