任务描述
背景
有这么一个数,它普遍存在于数学、物理等领域,它是现代科学中应用最广泛、作用最重要的一个常数,它是我们曾经口中的“山巅一寺一壶酒”,这个数就是圆周率。作为现代社会几乎每个人都知道的一个概念,圆周率的计算过程却跨越了几千年的历史,凝聚了大量科学家的心血,也见证了人类科技的不断进步(下图显示了圆周率的计算历程,横轴是年份,纵轴是用对数坐标表示的圆周率精确位数)。
虽然早在公元前 2 千多年前,古人就发现了圆的周长与直径存在一个固定的比值,并精确到小数点后 1 位,但从“山巅一”到“山巅一寺一壶酒”中间却经历了两千多年,直到公元 263 年,我国的刘徽才将圆周率精确到小数点后 5 位。两百多年后,祖冲之进一步精确到 7 位,从当时的技术水平看,这是一个非凡的成就,这一成就直到近千年后才被打破,这也使得祖冲之与圆周率成为两个紧密联系在一起的词。
十八世纪以来,级数等数学理论的发展为圆周率的计算开辟了新的思路。1948 年,圆周率被精确到小数点后 808 位,达到人工计算的巅峰。
随着电子计算机的出现,圆周率的计算精度突飞猛进。第一台通用电子计算机 ENIAC 将圆周率精确到小数点后 2037 位。2019 年 3 月 14 日(圆周率日),谷歌宣布圆周率被精确到小数点后 31.4 万亿位。
任务
下面给出的是基于泰勒级数计算圆周率的公式:
本关任务就是利用此公式计算圆周率。
相关知识
参考之前关卡。
编程要求
补全 Begin-End 区间的代码,其功能是根据给定的 n(用变量n表示),利用泰勒级数计算圆周率的近似值(用变量pi表示),说明如下:
1)n的值在程序运行时由系统自动设置(初始代码第 1 行),不要再额外设置,编程时假设其已知即可;
2)初始代码最后一行是打印计算结果,不要再额外添加打印语句,按要求算出变量pi的值即可;
3)不要改动 Begin-End 区间之外的代码。
测试说明
本关共有若干测试集,在每个测试集中,系统会自动设置变量n的值,程序的功能是据此计算圆周率近似值pi。例如,测试集 1 的输入是:
1
测试集 1 的运行结果为:
4.000000
开始你的任务吧,祝你成功!
n = int(input())
########## Begin ##########
i,s = 1,0
while i<=n:
sn = -1**(i-1)*(1/(2*i-1))
if i%2!=0:
sn = abs(sn)
s = s + sn
i = i+1
pi = s*4
########## End ##########
print('%.6f' % pi) #圆周率= 3.1415926…