编程实现蒲丰投针试验求圆周率π,并画出4个不同试验次数下的动态趋近图。
时间: 2024-11-11 11:41:15 浏览: 34
蒲丰投针试验是一种古老的方法,用于估算圆周率π的一个近似值,它基于随机投掷细长物体(如针)到矩形区域内的概率。理论上,如果针的长度小于矩形边长的一半,那么针落在覆盖圆的面积内的概率可以用来计算π。
在编程中,我们可以模拟这个过程。首先,我们需要设定一些变量,比如矩形的宽度、高度、针的长度以及实验的次数。然后,我们记录落入圆内的情况,用这个比例乘以4减去1(因为每个成功的投掷代表了两个单位的圆心角)即可得到π的估计。
下面是一个简单的Python示例,没有直接画出动态趋近图,因为文字描述难以直观展示,但你可以用Matplotlib这样的绘图库来创建图表:
```python
import numpy as np
import matplotlib.pyplot as plt
def monte_carlo_pi(n):
rectangle_width = 2
rectangle_height = 1
inside_circle = 0
for _ in range(n):
x = np.random.uniform(0, rectangle_width)
y = np.random.uniform(0, rectangle_height)
if x**2 + y**2 <= (rectangle_width / 2)**2:
inside_circle += 1
pi_estimate = 4 * inside_circle / n - 1
return pi_estimate
# 不同试验次数
trials = [1000, 5000, 10000, 50000]
pi_estimates = [monte_carlo_pi(trial) for trial in trials]
plt.figure(figsize=(10, 6))
plt.plot(trials, pi_estimates, 'o-', label='Estimate vs Trials')
plt.title('Monte Carlo Estimation of Pi with Different Trials')
plt.xlabel('Number of Trials')
plt.ylabel('Pi Estimate')
plt.legend()
plt.show()
阅读全文