首先构造一个单位正方形和一个四分之一圆,然后随机想其中抛洒大量的点,每个点可能在圆内也可能在圆外,当点数足够多时圆内点将构成圆的面积,全部点将构成矩形面积,用圆内点数量除以全部点数量,就得到了π/4。
输入darts:抛点的数量。
处理:对于每个点,计算点到圆心的距离,通过距离判断点在圆内还是圆外,然后统计圆内点的数量。
输出:π的值。
from random import random
from math import sqrt
from time import clock
darts = 12000000
hits = 0
clock()
for i in range(1,darts):
x,y=random(),random()
dist=sqrt(x**2+y**2)
if dist<=1.0:
hits=hits+1
pi=4*(hits/darts)
print("pi的值是%s"%pi)
print("程序运行的时间是%-5.5ss"%clock())
根据dart的值不同 得到π的精确值也不同
dart值越大 结果越精确
运行结果
转载自https://blog.csdn.net/qq_41699343/article/details/79441597
网友评论