使用刚才的方法计算圆周率pi
时间: 2024-10-22 16:21:08 浏览: 12
使用马尔科夫链或其他随机游走方法计算π(派)通常涉及到所谓的蒙特卡洛方法(Monte Carlo method),特别是著名的"投针法"(Buffon's Needle Problem)。这种方法模拟了随机投掷细针落在平行线之间的情况,借此估算圆周率。基本思路是针长除以两平行线之间的距离,乘以针能穿过线段的概率,然后用大量的尝试来逼近圆周率的比例。
下面是一个简单的Python代码示例,使用了你的迭代方法思想,不过这里的重点是概率统计而非精确的数学计算:
```python
import random
import math
def estimate_pi(n):
total_attempts = 0
successful_attempts = 0
for _ in range(n):
x = random.uniform(0, 1) # 水平方向的随机点
y = random.uniform(0, 1) # 垂直方向的随机点
distance_to_axis = min(math.sqrt(x**2 + y**2), 1) # 到y=0的距离
if distance_to_axis < 1 / math.sqrt(2): # 符合针穿过间隔的条件
successful_attempts += 1
return 4 * successful_attempts / n
estimate pi with a large number of attempts (e.g., n = 1000000)
```
当你运行此程序并增加尝试次数n,它会越来越接近真实值π。
阅读全文