第一次发帖,请原谅我,如果我不是那么简洁。所以我试图为蒙特卡罗集成做算法,我已经得到了下面的代码。但是,当我使用main
中指定的参数运行它时,我得到0
作为输出。我很确定它与Python处理花车的方式有关,但我不知道还有什么地方可以看。任何帮助总是受到赞赏。我知道当我看到自己的错误时,我会踢自己。
还有一件事,我正在使用Python 2.7。
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()