π的计算
随机向单位正方形和圆结构抛洒大量点,对于每个点,
可能在圆内或者圆外,当随机抛点数量达到一定程度,
圆内点将构成圆的面积,全部抛点将构成矩形面积。圆
内点数除以圆外点数就是面积之比,即π/4。随机点数
量越大,得到的π值越精确。
π计算问题的IPO表示如下:
输入:抛点的数量
处理:对于每个抛洒点,计算点到圆心的距离,通过
距离判断该点在圆内或是圆外。统计在圆内点的数量
输出:π值
代码:
from random import random
from math import sqrt
from time import clock
DARTS = 1200
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())
用到了random、math、time三个库,三个库介绍如下: