使用莱布尼茨公式计算圆周率

###大家是否还记得读书时用谐音记忆法背过的圆周率π,“山巅一寺一壶酒(3.14159),尔乐苦煞吾(26535),把酒吃(897),酒杀尔(932),杀不死(384),乐尔乐(626)”。圆周率π是精确计算圆周长、圆面积、球体积等几何形状的关键值。溯古追今,圆周率有着很长的计算历史。德国数学家莱布尼茨(Leibniz)于 1674 年曾提出 Gregory-Leibniz 公式来计算π:

∏/4=1-1/3+1/5-1/7+1/9+…
其中,每一项的分母都为奇数,项数累积的越多,π的计算结果会收敛的更加准确。

pi = 4*(1-1/3+1/5-1/7+1/9)
当我们算到 1/9 时,π值约为 3.339682… ;

pi = 4*(1-1/3+1/5-1/7+1/9-1/11+1/13-1/15+1/17-1/19+ 1/21-1/23+1/25-1/27+1/29-1/31+1/33-1/35+1/37-1/39+ 1/41-1/43+1/45-1/47+1/49-1/51+1/53-1/55+1/57-1/59)
当我们算到 1/59 时,π值约为 3.108268… 。

Python 循环嵌套
Python 语言允许在一个循环体里面嵌入另一个循环,针对for循环和while循环的语法如下所示:

for循环嵌套语法:

for i in s1:
   for j in s2:
      # do something 
   # do something else

上述代码示例是for循环嵌套for循环。首先执行外层循环,然后执行内层循环。

整个代码执行过程中,外层循环每执行一次,嵌套的内层循环全部执行一遍。假设外层循环需要执行 x 次,内层循环需要执行 y 次,则整个代码需要执行 x*y 次。

while循环嵌套语法:

while expression1:
   while expression2:
      # do something
   # do something else

while嵌套循环同for嵌套循环类似,首先执行外层循环,然后执行内层循环。整个代码执行过程中,外层循环每执行一次,嵌套的内层循环全部执行一遍。假设外层循环需要执行 x 次,内层循环需要执行 y 次,则整个代码需要执行 x*y 次。

此外,还可以在循环体内嵌入其他的循环体,比如在while循环中可以嵌入for循环,反之也可以在for循环中嵌入while循环。

###编程要求
观察莱布尼茨公式,我们想要更加准确的计算出π值,则需要累积更多的项数,计算公式会越来越长。为了避免重复的计算操作,请你仔细观察该公式是否存在计算规律,并设计出循环结构来简化冗长的代码。

本关卡给出了一个列表N_list,其中存储的是计算π最后一项的分母值(比如算到1/59时,存储的值为59)。

请编写程序,返回算到N_list中每一项时的π值,π值需保留八位小数(字符串形式),并用列表存储,最终输出列表结果。

##我的答案

N_list = [int(i) for i in input().split(',')]
list2=[]
s=0
#   请在此添加实现代码   #
# ********** Begin *********#
for i in N_list:
    for j in range(1,i+1,2):
        s=(-1)**(j+1)/j+s
    list2.append(4*s)
print(["{:.8f}".format(x) for x in list2])

错在哪里呢?

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值