Zacznij terazZacznij za darmo

Błędne obliczenie deterministyczne

W tym ćwiczeniu i następnym poeksperymentujesz z obliczeniami liczby pi z filmu, aby lepiej zrozumieć znaczenie każdego kroku w procesie symulacji.

Przypomnij sobie, że symulacja wyznaczania liczby pi generuje losowe punkty \((x, y)\), gdzie \(x\) i \(y\) przyjmują wartości z przedziału od -1 do 1, jak pokazano na poniższym wykresie.

A graph of a circle inside a square with randomly sampled points

Co się stanie, jeśli błędnie zdefiniujesz obliczenie deterministyczne, czyli warunek decydujący o tym, czy punkt powinien być dodany do circle_points? Jak wpłynie to na końcowy wynik? Dziwna wartość liczby pi, którą uzyskasz, pokaże, jak ważne jest poprawne określenie obliczeń deterministycznych w symulacjach Monte Carlo!

Biblioteka random została już zaimportowana.

To ćwiczenie jest częścią kursu

Symulacje Monte Carlo w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zwiększ circle_points dla każdego punktu, którego odległość od początku układu współrzędnych jest mniejsza niż 0,75 (zamiast odległości równej 1, jak pokazano 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):
    x = random.uniform(-1, 1)
    y = random.uniform(-1, 1)
    dist_from_origin = x**2 + y**2
    # Increment circle_points for any point with a distance from origin of less than .75
    if ____:
        circle_points += 1
    square_points += 1
pi = 4 * circle_points / square_points
print(pi)
Edytuj i uruchom kod