圆周率π的前世今生以及用 python语言编程计算

我国早在2100多年前的《周髀算经》里就有“周三径一”的记载,即圆的周长与直径的比为3:1,也就是圆周率约等于3;三国时代的数学家刘徽利用他首创的“割圆术”计算到圆内接正192边形,得出圆周率为3.141024。1500多年前我国数学家祖冲之,计算到圆内接正24576边形,得出圆周率在3.1415926到3.1415927之间,并把3.14159265定为正率,把22/7称为约率,把355/133=3.14159290……称为“密率”也称为“祖率”,这一世界纪录保持了大约1000年才被国外数学家打破。

1593年法国数学家韦达第一个导出了求π的无穷乘积公式,开创了现代数学计算π的新纪元,经过众多数学家的努力,直到1671年苏格兰数学家得到了反正切函数的展开式:arctgx=x-1/3*x^3+1/5*x^5-1/7*x^7+……(-1<=x<=1),1674年德国数学家莱布尼兹别出心裁地令x=1代入上式得到:π/4=1-1/3+1/5-1/7+1/9-1/11……使π的计算走上了快车道。32年后1706年英国天文学家马青得出公式:π/4=4arctg(1/5)-arctg(1/239),利用这个公式的前三项计算出圆周率的值比用莱布尼兹公式的前100项还准确。1873年英国人贤可士利用马青公式把π计算到了小数点后707位,这个纪录一直保持到1945年。

电子计算机发明后,1949年美国人利用世界上第一台电子计算机花了70小时时间,把π计算到了小数点后2037位……2019年3月14日,供职于谷歌的日本裔女程序员在谷歌云平台引擎的帮助下,使用了25台谷歌虚拟机耗时121天,才把π计算到了小数点后31.4万亿位。

其实即使π的值取3,其误差已小于5%(0.142/3=0.0473……),已达到了工业测量的最低标准,如取3.14,其误差将小于万分之5.1,这已经相当精确啦,如果取3.1416其误差将小于百万分之2.4,早已超过了精密测量的标准!人们为什么还要一代接一代不知疲倦地计算π值呢?难道想把π算尽不成?非也!

早在1767年德国数学家已经证明了π的无理性,也就是说无论如何也不可能把π计算穷尽,之后德国数学家利用欧拉公式:e^(iπ)+1=0,证明了π不是任何一个整系数代数方程的根,即π是超越数。

圆周率虽然是无穷尽的,但它的计算一方面反映了人们对科学孜孜不倦,精益求精的探索精神,另一方面也从侧面反映了人类计算技术的水平,而且现在人们常用计算π值来检验计算机的性能、程序的优劣等。通过π值的计算在一定程度上也促进了数学和计算机软件、硬件技术的发展和提高。

现把我用python语言编写的,能把圆周率π计算到小数点后n位的程序展示如下:

#因为π/4=4arctg(1/5)-arctg(1/239),又因为arctgx=x-1/3*x^3+1/5*x^5-1/7*x^7+……

#所以π=4[(4/5-1/239)-1/3(4/5^3-1/239^3)+1/5(4/5^5-1/239^5)-1/7(4/5^7-1/239^7)+……]

#!/usr/bin/env python #路径引导。

# -*- coding: UTF-8 -*- #包含中文注释标记

n = int(input(“请键入要把π计算到小数点后n位的整数n:”)) #先键入字符串,再转化为整数

w = n+10 #计算到小数点后w位(多计算了10位是为排除误差)

b = 4*10**w #被除数b为:4后面放上w个0

x1 = b*4//5 #求含4/5的第一项

x2 = b// -239 #求含1/239的第一项

he = x1+x2 #求第一大项

m = int(n*1.5) #循环末值扩大1.5倍

for i in range(3,m,2): #循环初值3,末值m,步长2

x1 //= -25 #含1/5的其它项及符

x2 //= -57121 #含1/239的其它项及符

x = (x1+x2) // i #求两项之和

he += x #求总和

he = he-3*10**w #输出处理:减掉π值前面的整数3

he //= 10**10 #截掉最后不精确的10位

print(“π=3.”,he ) #输出圆周率π的值

#注:我在家用电脑上,把π计算到小数点后1万位用时不到1秒,计算到小数点后十万位用时36秒

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月21日
下一篇 2021年3月21日

相关推荐