python撒点法求Π
时间: 2024-12-26 19:15:59 浏览: 10
### 使用Python实现蒙特卡罗方法估算圆周率
为了利用蒙特卡罗方法估计圆周率π,可以采用随机撒点的方式,在单位正方形及其内切圆上进行实验。具体来说,如果在一个边长为2的正方形内部画一个半径为1的圆形,则该圆形面积与正方形面积的比例等于π/4。
当大量随机点被均匀分布在这个区域内时,位于圆内的点数占总点数的比例会接近于π/4。因此可以通过统计这些比例并乘以4来获得π的一个近似值[^1]。
下面是一个简单的Python程序示例:
```python
import random
def estimate_pi(num_samples):
inside_circle = 0
for _ in range(num_samples):
x, y = random.uniform(-1, 1), random.uniform(-1, 1)
if x**2 + y**2 <= 1:
inside_circle += 1
pi_estimate = (inside_circle / num_samples) * 4
return pi_estimate
num_samples = 1000000 # 可调整样本数量以提高精度
print(f"Estimated value of Pi using {num_samples} samples is: {estimate_pi(num_samples)}")
```
这段代码定义了一个`estimate_pi()`函数,它接受参数`num_samples`表示要生成多少个随机点来进行模拟。每次调用这个函数都会执行一次完整的蒙特卡洛仿真过程,并最终打印出所得到的π估值。
阅读全文