① 現代計算機是如何計算圓周率的
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值(就是隨機點數目)越大,得到的值越准確,看你電腦的運行速度了。