Python蒙特卡罗法计算圆周率
时间: 2023-08-14 08:10:37 浏览: 109
分析实际上概率值为-蒙特卡洛模型
蒙特卡罗方法是一种基于随机数的统计模拟方法,可以用来估计圆周率。具体步骤如下:
1. 在一个正方形内画一个内切圆,圆心为正方形中心,半径为正方形边长的一半。
2. 在正方形内随机生成大量的点。
3. 统计有多少个点落在内切圆内,记为N。
4. 则圆的面积为πr²,正方形的面积为4r²,根据比例可得π/4 = N/M,其中M为正方形内的总点数。
5. 解出π的值即可。
下面是一个Python实现:
```python
import random
def estimate_pi(n):
num_point_circle = 0
num_point_total = 0
for _ in range(n):
x = random.uniform(0, 1)
y = random.uniform(0, 1)
distance = x**2 + y**2
if distance <= 1:
num_point_circle += 1
num_point_total += 1
return 4 * num_point_circle / num_point_total
print(estimate_pi(1000000))
```
这里的参数n表示生成的点数,生成的点越多,估计得到的圆周率越精确。
阅读全文