一、π的计算
①圆周率π是一个无理数,没有任何一个精确公式能够计算π值,π的计算只能采用近似算法。
②国际公认的π值计算采用蒙特卡洛方法。
③蒙特卡洛(Monte Carlo)方法,又称随机抽样或统计试验方法。当所求解的问题是某种事件出现的概率,或某随机变量的期望值时,可以通过某种“试验”的方法求解。
④简单说,蒙特卡洛是利用随机试验求解问题的方法。
二、π计算问题的IPO
输入:抛点的数量
处理:对于每个抛洒点,计算点到圆心的距离,通过距离判断该点在圆内或是圆外。统计在圆内点的数量。
输出:π值
# pi.py
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())
蒙特卡洛方法提供了一个利用计算机中随机数和随机试验,来解决现实中无法通过公式求解问题的思路,它广泛应用在金融工程学、宏观经济学、计算物理学等领域。