用串行方法实现蒙特卡洛法计算pi值
时间: 2023-10-13 13:06:42 浏览: 124
蒙特卡罗方法求pi问题
蒙特卡洛法是一种基于随机抽样的数值计算方法,可以用来计算圆周率 π 的近似值。其基本思想是,在一个正方形内部随机投点,统计落在一个半径为正方形边长的四分之一圆内的点的数量,根据点的数量比例,计算出圆的面积和正方形的面积之比,从而得到 π 的近似值。
下面是使用串行方法实现蒙特卡洛法计算 π 值的代码:
```python
import random
def monte_carlo_pi(n):
count = 0
for i in range(n):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
if x*x + y*y <= 1:
count += 1
pi = 4.0 * count / n
return pi
if __name__ == '__main__':
n = 1000000
pi = monte_carlo_pi(n)
print("π 的近似值为:", pi)
```
在这个代码中,我们定义了一个 monte_carlo_pi 函数来计算 π 的近似值。首先,我们随机生成 n 个点,每个点的横坐标和纵坐标均在 [-1, 1] 的范围内。然后,我们判断这些点是否在一个半径为 1 的四分之一圆内,如果在圆内,计数器 count 就加 1。最后,根据点的数量比例,计算出圆的面积和正方形的面积之比,从而得到 π 的近似值。
在主程序中,我们设置 n 的值为 1000000,即随机生成 1000000 个点来计算 π 的近似值。最后,我们输出计算出的 π 的近似值。
阅读全文