原理:通过大量随机样本,获得较为精确的值
圆与正方形面积之比为pi/4,随机向正方形中投入大量的样本点,通过算出到圆心的距离来判断落入圆中样本点的个数,在圆中点的个数比上点的总个数,乘以4,就得到pi的值。
from random import random
from math import sqrt
from time import clock
#取总数
darts=2**22
hist=0
clock()
for i in range(1,darts):
x,y=random(),random()
dist=sqrt(x**2+y**2)
if dist<=1.0:
hist=hist+1
pi=4*(hist/darts)
print('pi is %s'%pi)
print('运行时间 %ss'%clock())
心得收获:整个程序理解了原理后,代码并不困难,需要注意一下语法就行了。