Python程序 蒙特卡洛法求圆周率
时间: 2024-03-28 15:35:47 浏览: 145
蒙特卡洛法是一种基于随机抽样的统计方法,可以用来估计圆周率。在使用蒙特卡洛法求圆周率时,我们可以通过在一个正方形内随机生成大量的点,并统计落在圆内的点的数量来估计圆的面积,从而得到圆周率的近似值。
具体步骤如下:
1. 假设有一个边长为2r的正方形,将其内切于半径为r的圆。
2. 在正方形内随机生成大量的点,坐标范围为[-r, r]。
3. 统计落在圆内的点的数量。
4. 根据统计结果,计算圆的面积,即S = (落在圆内的点数 / 总点数) * (2r)^2。
5. 根据圆的面积公式 S = π * r^2,解得圆周率 π = (落在圆内的点数 / 总点数) * 4。
下面是Python程序示例:
```python
import random
def estimate_pi(num_points):
points_inside_circle = 0
total_points = num_points
for _ in range(num_points):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
distance = x**2 + y**2
if distance <= 1:
points_inside_circle += 1
pi_estimate = 4 * (points_inside_circle / total_points)
return pi_estimate
# 调用函数估计圆周率
num_points = 1000000
pi = estimate_pi(num_points)
print("估计的圆周率为:", pi)
```
阅读全文