- 起因
- 实践
我是一名初二学生,最近做作业看到个题:
我国魏晋时期数学家刘徽原创“割圆术”计算圆周率。随着时代发展,现在人们依据频率估计概率这一原理,常用随机模拟的方法对圆周率PI进行估计。用计算机随机产生 m 个有序数对(x,y)(x、y是实数,且0<=x<=1,0<=y<=1),它们对应的点在平面直角坐标系中全部在某一个正方形的边界及其内部。如果统计出这些点中到原点的距离小于或等于1的点有 n 个,那么据此可估计PI的值为________。
答案是
4
n
/
m
4n/m
4n/m
我觉得很神奇,所以用python实现了一下,代码烂,勿喷。
import numpy as np
import matplotlib.pyplot as plt
import math
plt.axis([0.0,1.0,0.0,1.0])
n = 0
m = 10000
for i in range(m):
x = np.random.rand(1)
y = np.random.rand(1)
if math.sqrt(x*x+y*y) <= 1:
plt.scatter(x,y,s=1,c='orange')
n+=1
else:
plt.scatter(x,y,s=1,c='blue')
plt.show()
print("n="+str(n))
print("PI="+str(4*n/m))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)