个从-1 到 1 之间的随机值来代表投点的横坐标和纵坐标,并创 立两个列表分别来记录横坐标和纵坐标的值,然后利用公式求 得 Pi 值并用列表记录。调用画图工具将实验过程呈现出来
时间: 2024-09-10 18:29:41 浏览: 41
在Python中,你可以使用`numpy`库来生成-1到1之间的随机点,`matplotlib`库来绘制图表,以及用这些随机点估算π值。首先,我们需要导入所需的库并设置一些参数:
```python
import numpy as np
import matplotlib.pyplot as plt
# 设置随机点的数量
num_points = 1000000
# 生成随机坐标
random_coordinates = np.random.uniform(low=-1, high=1, size=(num_points, 2))
# 记录横坐标和纵坐标的值
x = random_coordinates[:, 0]
y = random_coordinates[:, 1]
# 利用圆心(0, 0),半径1的方程判断点是否在圆内
is_in_circle = np.sqrt(x**2 + y**2) <= 1
# 计算落在圆内的点数,这是π的估计值
estimated_pi = 4 * sum(is_in_circle) / len(is_in_circle)
# 画图展示随机点和圆
fig, ax = plt.subplots()
ax.scatter(x[~is_in_circle], y[~is_in_circle], color='gray', label="Outside")
ax.scatter(x[is_in_circle], y[is_in_circle], color='red', label="Inside Circle")
ax.legend()
ax.set_aspect('equal')
plt.title("Estimating Pi using Monte Carlo Method")
plt.show()
print(f"Estimated value of π is approximately {estimated_pi}")
阅读全文