我刚开始编程,这个任务给我带来了很多麻烦。如何更改下面的蒙特卡洛代码(用于曲线下面积)以估计 pi?
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()
任何帮助将不胜感激。谢谢你。