7-4 使用蒙特卡洛算法计算圆周率
时间: 2024-05-07 08:19:57 浏览: 13
蒙特卡洛算法是一种基于随机抽样的统计算法,可以用来估算圆周率。其基本思路是,将一个正方形和一个内切圆放置于同一坐标系中,然后随机生成大量点,并计算这些点中有多少个落在圆内。根据概率统计知识可知,圆的面积与正方形面积的比值等于圆周率与4的比值。因此,我们可以根据落在圆内的点数与总点数的比值来估算圆周率。
以下是 Python 代码实现:
```python
import random
def estimate_pi(num_points):
points_inside_circle = 0
total_points = 0
for i in range(num_points):
x = random.uniform(0, 1)
y = random.uniform(0, 1)
distance = x**2 + y**2
if distance <= 1:
points_inside_circle += 1
total_points += 1
pi = 4 * points_inside_circle / total_points
return pi
print(estimate_pi(1000000))
```
在上述代码中,我们生成了100万个坐标值随机的点,并计算其中有多少个点落在了内切圆内。最终,我们将落在圆内的点数与总点数的比值乘以4,即可得到估算出的圆周率。
需要注意的是,蒙特卡洛算法的精度与点数有关,点数越多,估算结果越接近真实值。