蒙特卡罗方法计算圆周率

蒙特卡罗方法是一个撒点方法,取一个正圆的四分之一,和一个正方形的四分之一

形成一个单位方形,单位四分之一圆和四分之一正方形之比,就构成了圆周率

python中圆周率的计算-LMLPHP

向这个区域撒点,如果点落在圆内部,就是圆内部的一部分,如果落在正方形中,就是正方形的一部分

python中圆周率的计算-LMLPHP

代码

调用random函数,并且使用了perf_counter这个函数,是可以用来计时的一部分

python中圆周率的计算-LMLPHP

定义变量,当作抛洒点的总数量

python中圆周率的计算-LMLPHP

撒在圆内部点为0

python中圆周率的计算-LMLPHP

开始计时

python中圆周率的计算-LMLPHP

循环撒点的过程看成是遍历循环的过程

用for in range对所有点进行抛洒

python中圆周率的计算-LMLPHP

  定义x,y当作两个随机数的坐标值,这个坐标就是圆的抛点

  python中圆周率的计算-LMLPHP

如何判断这个坐标就在圆内呢?判断这个点到圆心的距离是否等于1

  python中圆周率的计算-LMLPHP

如果在圆的内部,就加一

  python中圆周率的计算-LMLPHP

用这个值比上整个区域值

python中圆周率的计算-LMLPHP

输出圆周率值

python中圆周率的计算-LMLPHP

计算计算时间

python中圆周率的计算-LMLPHP

05-04 06:54