如何计算Pi?python

怎样计算PI?

下面是python程序:

def calculate_pi(iterations):
    pi = 0
    for i in range(iterations):
        term = (-1) ** i / (2 * i + 1)
        pi += term
    pi *= 4
    return pi
# 设置迭代次数
iterations = 1000000
estimated_pi = calculate_pi(iterations)
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)
def power(x, n):
    if n == 0:
        return 1
    else:
        return x * power(x, n - 1)
def sin(x):
    # 使用泰勒级数展开计算sin(x),这里只计算到第5项
    x = x % (2 * estimated_pi)  # 将x限制在[0, 2π]范围内
    sum_sin = 0
    for i in range(5):
        term = power(-1, i) * power(x, 2 * i + 1) / factorial(2 * i + 1)
        sum_sin += term
    return sum_sin
def polygon_approximation(n):
    # 计算正n边形的边长
    side_length = 2 * sin(estimated_pi / n)  # 使用π的近似值
    return side_length
def estimate_pi(precision=0.000001):
    n = 10000  # 初始多边形边数,可以选择其他正多边形
    while True:
        current_side_length = polygon_approximation(n)
        next_side_length = polygon_approximation(n + 1)
        if abs(next_side_length - current_side_length) < precision:
            break
        n += 1
    return n * current_side_length / 2
print("Pi:", round(estimate_pi(),5))

这段代码的目的是通过计算正多边形的边长来估算π的值。首先,它定义了一个名为`calculate_pi`的函数,该函数使用莱布尼茨级数来计算π的近似值。然后,它定义了一些辅助函数,如`factorial`、`power`和`sin`,这些函数用于计算泰勒级数展开式中的项和其他数学运算。

接下来,它定义了一个名为`polygon_approximation`的函数,该函数计算正n边形的边长。最后,它定义了一个名为`estimate_pi`的函数,该函数通过不断增加正多边形的边数,直到相邻边长的差小于给定的精度阈值,来估算π的值。

最后一行代码打印出估算出的π值,保留5位小数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值