栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

###大家是否还记得读书时用谐音记忆法背过的圆周率π,“山巅一寺一壶酒(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])

错在哪里呢?

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308327.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号