Загрузка данных


import random

import math

def f(x, y):

    return math.sqrt(x**2 - y**2)

N = 100000   # общее число точек

sum_f = 0

n_in = 0     # сколько попало в область

for _ in range(N):

    x = random.random()   # [0,1]

    y = random.random()   # [0,1]

    if y <= x:  # точка внутри треугольника

        sum_f += f(x, y)

        n_in += 1

# площадь области через Монте-Карло

S = n_in / N

# среднее значение функции по области

f_avg = sum_f / n_in if n_in != 0 else 0

# интеграл

I = S * f_avg

print("Площадь S ≈", S)

print("Интеграл I ≈", I)