代码如下:
import numpy as np
from numpy.random import rand
total=1000
N=rand(total)
xrand=N ; yrand=N
k=xrand**2+yrand**2<=1
a=np.sum(k)/total
print("π值为:",a*4)
代码如下:
import numpy as np
from numpy.random import rand
total=1000
N=rand(total)
xrand=N ; yrand=N
k=xrand**2+yrand**2<=1
a=np.sum(k)/total
print("π值为:",a*4)
以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:
原因分析:
total=1000)非常小。Monte Carlo方法的准确性很大程度上依赖于样本量。样本量越大,结果越接近真实值。解决方案:
total的值,从而增加随机生成的点的数量,减少误差。以下是修改后的代码示例:
import numpy as np
from numpy.random import rand
def estimate_pi(total=1000, trials=10):
results = []
for _ in range(trials):
xrand = rand(total)
yrand = rand(total)
k = (xrand**2 + yrand**2) <= 1
a = np.sum(k) / total
results.append(a * 4)
return np.mean(results)
pi_estimate = estimate_pi(total=1000000, trials=100)
print("π估计值为:", pi_estimate)
代码解释:
estimate_pi函数,接受总样本量(total)和试验次数(trials)作为参数。total个随机点的坐标,计算这些点落在单位圆内的比例。results列表中,最后计算这些结果的平均值作为π的估计值。通过这些改进,可以显著提高使用Monte Carlo方法计算π值的准确性。