使用蒙特卡罗法求π的近似值。
蒙特卡罗方法或称计算机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第二次世界大战时研制原子弹的“曼哈顿计划”。该计划的主持人之一数学家冯·诺依曼用驰名世界的赌城——摩纳哥的蒙特卡罗来命名这种方法,为它蒙上了一层神秘的色彩。
蒙特卡罗方法的思路是,在一个单位边长的正方形中,以边长为半径,以一个顶点为圆心,在这个正方形上作四分之一圆。在正方形中随机地投入很多点,使所投入的点落在正方形中每一个位置的机会相等。若点落入四分之一圆内则计数。重复地向正方形中投入足够多的点,用落入四分之一圆内的点数除以总的点数,得到的就是π的四分之一的近似值。
用python程序来实现蒙特卡罗方法。
下面直接上代码:
########################
from random import random
import math
if __name__ == "__main__":
dianshu = 10000000 # 落入正方形的总的点数,此数越大,越逼近π的近似值
luoru = 0.0 # 落入四分之一圆的点数
for i in range(1, dianshu+1):
x, y = random(), random() # 随机生成[0, 1)之间的数
dist = math.sqrt(x**2+y**2) # 蒙特卡罗法求解
if dist <= 1.0:
luoru = luoru+1
pai = 4*(luoru/dianshu) # 计算π的近似值
print("π的值{}.".format(pai))
########################
执行结果如下:
π的值3.1424676.
________________END______________
网友评论