① 现代计算机是如何计算圆周率的
pi = 0.0
N = 100
for i in range(N):
pi += (1/pow(16,i) * ( 4/(8*i +1) -2/(8*i+4)-1/(8*i+5) -1/(8*i +6) ) )
print('圆周率为{:.10f}'.format(pi))
请把以上代码拷进python语言开发环境里运行,结果如下(下图是使用python开发环境Spyder运行上述代码的结果):圆周率为3.1415926536.
(1)python计算圆周率并比较大小扩展阅读
电子计算机的出现使π值计算有了突飞猛进的发展。1949年,美国制造的世上首部电脑-ENIAC(Electronic Numerical Integrator And Computer)在阿伯丁试验场启用了。
次年,里特韦斯纳、冯纽曼和梅卓普利斯利用这部电脑,计算出π的2037个小数位。这部电脑只用了70小时就完成了这项工作,扣除插入打孔卡所花的时间,等于平均两分钟算出一位数。
五年后,IBM NORC(海军兵器研究计算机)只用了13分钟,就算出π的3089个小数位。科技不断进步,电脑的运算速度也越来越快,在60年代至70年代,随着美、英、法的电脑科学家不断地进行电脑上的竞争,π的值也越来越精确。
在1973年,Jean Guilloud和Martin Bouyer以电脑CDC 7600发现了π的第一百万个小数位。
在1976年,新的突破出现了。萨拉明(Eugene Salamin)发表了一条新的公式,那是一条二次收敛算则,也就是说每经过一次计算,有效数字就会倍增。
高斯以前也发现了一条类似的公式,但十分复杂,在那没有电脑的时代是不可行的。这算法被称为布伦特-萨拉明(或萨拉明-布伦特)算法,亦称高斯-勒让德算法。
1989年美国哥伦比亚大学研究人员用克雷-2型(Cray-2)和IBM-3090/VF型巨型电子计算机计算出π值小数点后4.8亿位数,后又继续算到小数点后10.1亿位数。
2010年1月7日——法国工程师法布里斯·贝拉将圆周率算到小数点后27000亿位。2010年8月30日——日本计算机奇才近藤茂利用家用计算机和云计算相结合,计算出圆周率到小数点后5万亿位。
2011年10月16日,日本长野县饭田市公司职员近藤茂利用家中电脑将圆周率计算到小数点后10万亿位,刷新了2010年8月由他自己创下的5万亿位吉尼斯世界纪录。56岁的近藤茂使用的是自己组装的计算机,从10月起开始计算,花费约一年时间刷新了纪录。
② python如何计算π
#coding=utf-8
'''
Createdon2014-11-04
@author:Neo
'''
importsys
importmath
fromdecimalimport*
defbbp(n):
pi=Decimal(0)
k=0
whilek<n:
pi+=(Decimal(1)/(16**k))*((Decimal(4)/(8*k+1))-(Decimal(2)/(8*k+4))-(Decimal(1)/(8*k+5))-(Decimal(1)/(8*k+6)))
k+=1
returnpi
defmain(argv):
iflen(argv)!=2:
exit('Usage:BaileyBorweinPlouffe.py<prec><n>')
getcontext().prec=(int(sys.argv[1]))
my_pi=bbp(int(sys.argv[2]))
accuracy=100*(Decimal(math.pi)-my_pi)/my_pi
print"Piisapproximately"+str(my_pi)
print"Accuracywithmath.pi:"+str(accuracy)
if__name__=="__main__":
main(sys.argv[1:])
result:
d:workspacePyDemo>python test.py 10 10
Pi is approximately 3.141592653
Accuracy with math.pi: 1.877369797E-8
d:workspacePyDemo>python test.py 25 25
Pi is approximately 3.141592653589793238462644
Accuracy with math.pi: -3.898171852150198570978563E-15
d:workspacePyDemo>python test.py 40 40
Pi is approximately 3.
Accuracy with math.pi: -3.-15
d:workspacePyDemo>
③ 2πa在python表达式
在 Python 中,您可以使用以下表达式表示数学常数“2πa”:
该程序会将“2πa”的值(“a”等于3)输出到控制台。
回答不易望请采纳
④ python如何表示 圆周率
因为pi是python,math函数库中的一个内建函数。
import math
print "math.modf(100.12) : ", math.modf(100.12)
print "math.modf(100.72) : ", math.modf(100.72)
print "math.modf(119L) : ", math.modf(119L)
print "math.modf(math.pi) : ", math.modf(math.pi)
(4)python计算圆周率并比较大小扩展阅读:
cmath是python中的标准库函数,用于做复杂的复数运算,
Python cmath 模块包含了一些用于复数运算的函数。
cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math模块运算的是数学运算。
polar 函数对一个输入的笛卡尔形势的复数进行计算,输出为一个二元组,第一个值为Z的模值, 第二个为幅度值。 rect() 函数对输入的模和幅度值进行计算输出笛卡尔表示。如果需要单独对一个复数进行幅度值的求解,可以调用 cmath.phrase(x) 函数,返回幅度值。
import random
m = n = 0
i = 0
while i < 1000000:
x = random.random()
y = random.random()
if x * x + y * y < 1:
m += 1
else:
n += 1
i += 1
print("PI 约等于:%.20f" % (4 * ((m / 1.0) / (m + n))))
使用随机数,根据圆周面积S=PI*r*r
当r=1时,面积就是PI值,在第一象限中的四分之一个半圆就是四分之一个PI值,按照这个思路,可以设计上面的代码,里面的i值(就是随机点数目)越大,得到的值越准确,看你电脑的运行速度了。