计算圆周率Python
时间: 2024-04-25 13:20:00 浏览: 117
计算圆周率是一个经典的数学问题Python提供了多种方法来计算圆周率。以下是其中两种常见的方法:
1. 使用蒙特卡洛方法计算圆周率:
蒙特卡洛方法是一种基于随机采样的统计方法,可以用来估计圆周率。该方法的基本思想是,在一个正方形内部随机生成大量的点,然统计落在圆内的点的比例,最后通过比例来估计圆周率。
```python
import random
def estimate_pi(n):
count = 0
for _ in range(n):
x = random.uniform(0, 1)
y = random.uniform(0, 1)
if x**2 + y**2 <= 1:
count += 1
return 4 * count / n
# 示例:估计圆周率,采样点数为1000000
print(estimate_pi(1000000))
```
2. 使用公式计算圆周率:
数学上已经有一些公式可以用来计算圆周率,其中最著名的是莱布尼茨级数和马青公式。
- 莱布尼茨级数:
莱布尼茨级数是一个无穷级数,可以用来计算圆周率的近似值。该级数的公式如下:
π/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...
```python
def calculate_pi_leibniz(n):
pi = 0
sign = 1
for i in range(1, n*2, 2):
pi += sign * (1/i)
sign *= -1
return pi * 4
# 示例:计算圆周率,级数项数为100000
print(calculate_pi_leibniz(100000))
```
- 马青公式:
马青公式是另一种计算圆周率的公式,它基于无穷乘积的形式。该公式的公式如下:
π/4 = (2/1) * (2/3) * (4/3) * (4/5) * (6/5) * (6/7) * ...
```python
def calculate_pi_machin(n):
pi = 1
for i in range(1, n+1):
numerator = 2 * i
denominator = 2 * i - 1
pi *= numerator / denominator
return pi * 4
# 示例:计算圆周率,乘积项数为1000
print(calculate_pi_machin(1000))
```
阅读全文