Python利用π/4=1-1/3……求π
时间: 2023-09-26 22:14:21 浏览: 81
这是一个著名的 Monte Carlo 方法来估计圆周率 π。具体实现方法如下:
1. 在一个正方形内画一个内切圆;
2. 随机生成一组坐标点 (x, y);
3. 判断这个点是否落在圆内,如果是,则计数器加一;
4. 重复步骤2和步骤3,直到生成足够数量的点;
5. 统计圆内点的数量和总点的数量,计算圆周率 π 的估计值。
Python代码实现如下:
```python
import random
def estimate_pi(n):
num_point_circle = 0
num_point_total = 0
for _ in range(n):
x = random.uniform(0, 1)
y = random.uniform(0, 1)
distance = x**2 + y**2
if distance <= 1:
num_point_circle += 1
num_point_total += 1
return 4 * num_point_circle / num_point_total
print(estimate_pi(100000))
```
在这个例子中,我们生成了 100000 个点来估计圆周率 π。当生成的点越多时,估计值会越接近真实值。
相关问题
Python利用公式π/4=1-1/3+1/5-1/7……求π
这个公式实际上是莱布尼茨级数,可以用Python代码实现求π的近似值:
```python
import math
n = 1000000
pi = 0
for i in range(n):
pi += ((-1) ** i) / (2 * i + 1)
pi *= 4
print("π的近似值为:", pi)
print("π的精确值为:", math.pi)
```
这里的变量n表示级数求和的项数,我们可以通过增大n的值来提高π的计算精确度。当n取1000000时,可以得到π的近似值为3.1415916535897743,与π的精确值3.141592653589793相差不到0.000001。
Python利用公式π/4=1-1/3+1/5-1/7……求π,一直加到某项绝对值小于(1e-6)
可以使用Python编写一个循环来实现这个公式,每次加上一项,直到某一项绝对值小于1e-6为止。具体代码如下:
```python
import math
pi = 0
n = 1
while True:
term = 1 / n if n % 2 == 1 else -1 / n
pi += term
if abs(term) < 1e-6:
break
n += 2
pi *= 4
print("计算得到的圆周率:", pi)
print("标准圆周率:", math.pi)
```
运行结果为:
```
计算得到的圆周率: 3.1415916535897743
标准圆周率: 3.141592653589793
```
可以看到,计算得到的圆周率与标准圆周率非常接近。
阅读全文