Python---利用蒙特.卡罗方法计算圆周率近似值

利用蒙特.卡罗方法计算圆周率近似值

什么是蒙特.卡罗方法?
答:蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。
正方形内部有一个相切的圆,它们的面积之比是π/4。
这里假设正方形的边长为2,也就是[-1,1]之间
在这里插入图片描述

from random import random

def estimatePI(times):
    hits = 0
    for i in range(times):
        x = random()*21 #random()生成介于0和1之间的小数
        y = random()*2 - 1 #该数字乘以2再减1,则介于-1和1之间
        if x*x + y*y <= 1:       #落在圆内或圆周上
            hits += 1
    return 4.0 * hits/times
#这里的times为正方形的面积,hits为圆的面积,当正方形的面积越来越大的时候,Π = 4.0 * hits/times的值越精确
print(estimatePI(10000))
print(estimatePI(1000000))

猜你喜欢

转载自blog.csdn.net/qq_41264055/article/details/105443107