python模拟蒙特卡罗法计算圆周率的近似ŀ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python模拟蒙特卡罗法计算圆周率的近似ŀ相关的知识,希望对你有一定的参考价值。

参考技术A 蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题。

假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),

如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值。

这就是蒙特·卡罗发明的用于计算圆周率近似值的方法。
编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值。

import random,math
s = 1 * 1
c = int(input())
hit = c
hits = 0
while hit != 0 :
hit = hit - 1
x = random.random()
y = random.random()
z = math.sqrt(x**2+y**2)
if z <= 1:
hits = hits + 1
PI = 4 * hits/c
print(PI)
这段程序主要运用通过计算落点的坐标与原点的距离来确定镖是否在中在圆内

当运行的次数足够大,也就会越来越逼近圆周率
另外再说一点就是python中的random()函数

random()函数的调用方法如下

import random

x = random.random()

返回的值在(0,1]之间

以上是关于python模拟蒙特卡罗法计算圆周率的近似ŀ的主要内容,如果未能解决你的问题,请参考以下文章

数学建模暑期集训17:蒙特卡洛法

Python圆周率 Pi (π) 的计算(蒙特卡罗法+公式法)

Python蒙特卡罗计算圆周率PI——Numpy性能优化

Python多进程计算圆周率 Pi (π) 的值(ProcessPoolExecutor)

027 实例6-圆周率的计算

有进度条圆周率计算