私はプログラミングを始めたばかりで、この割り当ては私に多くの問題を与えています。以下のモンテカルロコード(曲線の下の面積に使用)を変更して、円周率を推定するにはどうすればよいですか?
from random import uniform
from math import exp
def estimate_area(f, a, b, m, n=1000):
hits = 0
total = m * (b - a)
for i in range(n):
x = uniform(a, b)
y = uniform(0, m)
if y <= f(x):
hits += 1
frac = hits / n
return frac * total
def f(x):
return exp(-x**2)
def main():
print(estimate_area(f, 0, 2, 1))
main()
どんな助けでも大歓迎です。ありがとうございました。