描述
π是个超越数,圆周率的超越性否定了化圆为方这种尺规作图精确求解问题的可能性。有趣的是,π可以用无穷级数表示:
左边的展式是一个无穷级数,被称为莱布尼茨级数(Leibniz),这个级数收敛到π/4,它通常也被称为格雷戈里-莱布尼茨级数,用以纪念莱布尼茨同时代的天文学家兼数学家詹姆斯·格雷戈里。
编程用这个公式计算π值,输入一个小数作为阈值,当最后一项的绝对值小于给定阈值时停止计算并输出得到的π值。
输入格式
一个正浮点数threshold,限定级数法求解pi值时,迭代累加只加绝对值大于threshold的项。
输出格式
输出为一个浮点数,是程序使用级数法求解的pi值,要求保留小数点后八位。
输入输出示例 输入 输出
def leibniz_of_pi(error):
"""接收用户输入的浮点数阈值为参数,返回圆周率值"""
# ===================Begin====================================
# 补充你的代码
a = 1
b = 1
sum = 0
while 1/ b > error:
if a % 2 != 0:
sum += 1 / b
else:
sum -= 1/ b
a += 1
b += 2
pi = sum*4
return pi
# =====================End==================================
if __name__ == '__main__':
threshold = float(input())
print("{:.8f}".format(leibniz_of_pi(threshold))) # 保留小数点后八位
测试: