快捷搜索:  汽车  科技

python蒙特卡洛方法求圆周率,趣味代码-Python

python蒙特卡洛方法求圆周率,趣味代码-Pythonfrom random import random dots = 1000 * 1000 hits = 0 for _ in range(dots): x y = random() random() d = pow(x*x y*y 0.5) if d < 1: hits = 1 pi = 4 * (hits / dots) print(pi) 运行代码,输出:3.14972,与圆周率准确数值相近。由于为随机算法,每次运行数值都不相同。另外,点数取得越多,数值越精确。

蒙特卡洛方法,是二十世纪四十年代被提出的一种以概率统计理论为指导的的数值计算方法,通过使用随机模拟实验解决很多难以通过确定算法计算的问题的方法。

1777年,法国数学家布丰提出用投针实验的方法求圆周率 π,这被认为是蒙特卡罗方法的起源。后来,数学家冯·诺伊曼用摩纳哥的 Monte Carlo 命名这种概率计算方法。

python蒙特卡洛方法求圆周率,趣味代码-Python(1)

圆周率(Pi)是圆的周长与直径的比值,一般用希腊字母 π 表示,是一个在数学及物理学中普遍存在的数学常数。π也等于圆形之面积与半径平方之比,是精确计算圆周长、圆面积、球体积等几何形状的关键值。圆周率它是一个无限不循环小数,约等于3.141592653。

通过对直角坐标系第一象限的一个正方形进行随机投点,并统计在四分之一圆内的点数所占的比例,来模拟计算圆周率。

python蒙特卡洛方法求圆周率,趣味代码-Python(2)

from random import random dots = 1000 * 1000 hits = 0 for _ in range(dots): x y = random() random() d = pow(x*x y*y 0.5) if d < 1: hits = 1 pi = 4 * (hits / dots) print(pi)

运行代码,输出:3.14972,与圆周率准确数值相近。由于为随机算法,每次运行数值都不相同。另外,点数取得越多,数值越精确。

猜您喜欢: