无穷级数法求Π

任务描述

本关任务:编写一个无穷级数法计算圆周率的小程序。

相关知识

为了完成本关任务,你需要掌握:

  1. 无穷级数法
无穷级数法

π 是个超越数,圆周率的超越性否定了化圆为方这种尺规作图精确求解问题的可能性。有趣的是,π 可以用无穷级数表示:

1/1-1/3+1/5-1/7 = Π/4

左边的展式是一个无穷级数,被称为莱布尼茨级数(Leibniz),这个级数收敛到 π/4,它通常也被称为格雷戈里-莱布尼茨级数,用以纪念莱布尼茨同时代的天文学家兼数学家詹姆斯·格雷戈里。

编程要求

根据提示,在右侧编辑器补充代码,编程用这个公式计算 π值,输入一个小数作为阈值,当最后一项的绝对值小于给定阈值时停止计算并输出得到的 π 值。

测试说明

平台会对你编写的代码进行测试:

输入格式 一个正浮点数 threshold,限定级数法求解 pi 值时,迭代累加只加绝对值大于 threshold 的项。

输出格式 输出为一个浮点数,是程序使用级数法求解的 pi 值,要求保留小数点后八位。

输入输出示例 示例 1

输入: 0.000002

输出: 3.14158865

示例 2

输入: 1e-6

输出: 3.14159065

'''
使用无穷级数这个公式计算π值,输入一个小数作为阈值,当最后一项的绝对值小于给定阈值时停止计算并输出得到的π值
'''

def leibniz_of_pi(error):
    """接收用户输入的浮点数阈值为参数,返回圆周率值"""
    # 补充你的代码
    pi = 0
    fenmu = 1
    l = 1
    f = -1
    while abs(l) > threshold:
        pi += l 
        fenmu += 2
        l = f / fenmu 
        f = -f
    return pi * 4



if __name__ == '__main__':
    threshold = float(input())
    print("{:.8f}".format( leibniz_of_pi(threshold)  ) ) #保留小数点后八位

估计有Bug,而且目前没时间Debug...实在抱歉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Charles Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值