python模拟蒙特卡罗法计算圆周率的近似值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python模拟蒙特卡罗法计算圆周率的近似值相关的知识,希望对你有一定的参考价值。
蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题。假设有一块边长为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]之间 参考技术A 画一个圆以及与其外切的正方形,在正方形内任取一个点,则它在圆内的概率=圆面积/正方形面积=πr^2/(2r)^2=π/4。所以π近似等于这个概率的4倍。用python多次取正方形内随机点,判断是否在圆内,算出这个概率后乘以4,就大致等于π。
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模拟蒙特卡罗法计算圆周率的近似值的主要内容,如果未能解决你的问题,请参考以下文章
Python圆周率 Pi (π) 的计算(蒙特卡罗法+公式法)