应用蒙特卡罗法求解Π的计算使用python
时间: 2023-07-25 12:44:17 浏览: 130
蒙特卡罗方法是一种基于随机抽样的统计数值计算方法,常用于求解复杂的数学问题。其中,利用蒙特卡罗方法计算圆周率是经典的案例之一。
具体实现思路如下:
- 在一个正方形内部随机生成一定数量的点(例如10000个),这个正方形的边长为2R;
- 假设这个正方形内部有一个半径为R的圆,则圆的面积为 πR²,正方形的面积为 (2R)² = 4R²;
- 统计这些点中有多少个落在圆内,设其为N,则有 N/10000 = πR² / 4R²,即 π = 4N/10000。
根据上述思路,可以使用Python实现蒙特卡罗法求解圆周率的计算,代码如下:
```python
import random
import time
def estimate_pi(num_samples):
"""用蒙特卡罗法估算圆周率"""
num_inside_circle = 0
for i in range(num_samples):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
if x**2 + y**2 <= 1:
num_inside_circle += 1
return 4 * num_inside_circle / num_samples
if __name__ == "__main__":
num_samples = 10000
start_time = time.time()
pi_estimate = estimate_pi(num_samples)
end_time = time.time()
print(f"蒙特卡罗法估算的圆周率为 {pi_estimate:.6f}")
print(f"用时 {end_time - start_time:.6f} 秒")
```
运行结果示例:
```
蒙特卡罗法估算的圆周率为 3.151200
用时 0.002999 秒
```
由于蒙特卡罗法是一种随机抽样的方法,因此每次运行结果可能会略有不同,但是随着样本数量的增加,计算结果的精度也会越来越高。
阅读全文