НачатьНачать бесплатно

Ошибочное детерминированное вычисление

В этом и следующем упражнениях вы поэкспериментируете с вычислением числа пи из видео, чтобы лучше понять роль каждого шага в процессе симуляции.

Вспомните: симуляция для нахождения числа пи генерирует случайные точки \((x, y)\), где \(x\) и \(y\) принимают значения от -1 до 1, как показано на графике ниже.

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

Что произойдёт, если допустить ошибку в детерминированном вычислении — том, где проверяется, нужно ли добавить точку в circle_points? Как это повлияет на итоговый результат? Неожиданное значение числа пи, которое вы получите, наглядно покажет: корректное задание детерминированных вычислений крайне важно для метода Монте-Карло!

Библиотека random уже импортирована.

Это упражнение является частью курса

Симуляции Монте-Карло на Python

Посмотреть курс

Инструкции к упражнению

  • Увеличивайте circle_points для каждой точки, расстояние которой от начала координат меньше 0,75 (вместо расстояния, равного единице, как было показано в видео).

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код