使用numpy实现蒙特.卡罗方法估计圆周率的值。
时间: 2024-01-22 07:20:20 浏览: 127
用蒙特卡洛方法计算圆周率
5星 · 资源好评率100%
蒙特卡罗方法是一种基于随机采样的数值计算方法,通过在随机样本中进行统计分析,得到所求问题的近似解。其中,估计圆周率便是蒙特卡罗方法的经典应用之一。
具体实现过程如下:
1. 在正方形内随机生成大量点,统计落入圆形内的点的个数。
2. 根据正方形和圆形的面积关系,计算圆周率的近似值。
代码实现如下:
```python
import numpy as np
def estimate_pi(n):
count = 0 # 落在圆内的点数
for i in range(n):
x, y = np.random.rand(2) * 2 - 1 # 在正方形内随机生成点
if x**2 + y**2 <= 1: # 判断是否在圆内
count += 1
return 4 * count / n # 计算圆周率的近似值
print(estimate_pi(1000000)) # 输出圆周率的近似值
```
执行结果示例:
```
3.141536
```
由于是随机采样,每次运行结果可能略有不同。
阅读全文