推荐图书:

董付国著,《Python程序设计基础(第3版)》(微课版),ISBN:9787302611035,清华大学出版社,定价59.8元,2023年1月出版,2023年12月第5次印刷(本书前两版累计印刷27次,已退出历史舞台),全国高等学校计算机教育研究会“十四五”规划教材,山东省高等教育优秀教材,山东省普通高等教育一流教材,山东省一流本科课程“Python应用开发”(线上线下混合)配套教材,山东省一流本科课程“Python程序设计基础”(线上)配套教材,本书第二版为清华大学出版社2019、2020、2021、2022年畅销教材

从格雷果里到莱布尼兹到约翰梅钦的圆周率计算公式之Python实现_微信公众号

图书内容:Python基础,正则表达式,文件操作,数据库操作,数据分析与科学计算可视化

配套慕课:中国大学MOOC、智慧树,搜索“董付国”

配套微课:43小时

配套资源:教学大纲、课件、源码、数据文件、在线练习软件

页数:310

适用专业:非计算机专业(偏理科)、选修课

适用层次:研究生/本科/专科

适用学时:48/64

配套资源:用书教师可以免费获取教学大纲、教案、课件、源码、习题答案、慕课、在线练习与考试系统。

《Python程序设计基础(第3版)》章节习题参考答案

==============

1671年,英国天文学家詹姆斯·格雷果里(James Gregory)提出了一个反正切函数的幂级数展开式,即

从格雷果里到莱布尼兹到约翰梅钦的圆周率计算公式之Python实现_微信公众号_02

又已知,

从格雷果里到莱布尼兹到约翰梅钦的圆周率计算公式之Python实现_发送消息_03

也就是

从格雷果里到莱布尼兹到约翰梅钦的圆周率计算公式之Python实现_开发语言_04

把x=1带入格雷果里幂级数展开式得到

从格雷果里到莱布尼兹到约翰梅钦的圆周率计算公式之Python实现_开发语言_05

这就是著名的用来计算圆周率近似值的莱布尼兹公式。

参考代码:

从格雷果里到莱布尼兹到约翰梅钦的圆周率计算公式之Python实现_微信公众号_06

上面的莱布尼兹公式收敛速度非常慢,用来计算圆周率近似值的效果并不是很好,需要计算很多很多很多项才能得到稍微满意的圆周率近似值。

后来有不少学者提出了改进算法,我国清朝数学家曾纪鸿(曾国藩次子)也对此做出过不小的贡献。

1706年英国天文学家约翰·梅钦(John Machin)提出了一个非常巧妙的公式可以精确计算圆周率的任意小数位,

从格雷果里到莱布尼兹到约翰梅钦的圆周率计算公式之Python实现_python_07

将其使用格雷果里幂级数展开,得

从格雷果里到莱布尼兹到约翰梅钦的圆周率计算公式之Python实现_发送消息_08

参考代码:

从格雷果里到莱布尼兹到约翰梅钦的圆周率计算公式之Python实现_微信公众号_09

上面程序虽然利用了标准库decimal提供的高精度实数并且设置了很大的小数位数,但仍受到精度的限制,每次计算都存在舍入误差,计算结果仍差强人意。

改写上面的梅钦公式,等号两边同时乘以10的N次方,把实数运算变为整数运算,可以准确计算圆周率任意位小数。

参考代码:

从格雷果里到莱布尼兹到约翰梅钦的圆周率计算公式之Python实现_Python_10

================

温馨提示:

关注微信公众号“Python小屋”