π的计算要求使用两种方式,即近似计算公式和蒙特卡洛两种算法实现并输出,生成Python代码
时间: 2024-12-29 16:28:17 浏览: 17
在Python中,我们可以使用数学库`math`中的无限级数近似公式来计算圆周率π的值,例如Leibniz公式。同时,也可以利用蒙特卡洛方法通过随机模拟来进行估算。以下是这两种方法的Python代码示例:
**使用无限级数近似公式(适用于基础情况):**
```python
import math
def pi_approximation(n_terms=1000):
numerator = 4.0
denominator = 1.0
operation = 1.0
pi = 0.0
for _ in range(n_terms):
pi += operation * (numerator / denominator)
operation *= -1.0
denominator += 2.0
return round(pi, 5)
print(pi_approximation())
```
**使用蒙特卡洛方法(更复杂,但精度高):**
```python
import random
import math
def monte_carlo_pi(n_samples):
inside_circle = 0
for _ in range(n_samples):
x = random.uniform(0, 1)
y = random.uniform(0, 1)
if x ** 2 + y ** 2 <= 1:
inside_circle += 1
pi_estimate = 4 * inside_circle / n_samples
return round(pi_estimate, 5)
n_samples = int(1e6) # 可调整样本数量提高精度
print(monte_carlo_pi(n_samples))
```
阅读全文