溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用python實(shí)現(xiàn)計(jì)算圓周率π的方法

發(fā)布時(shí)間:2020-11-19 17:34:12 來源:億速云 閱讀:1961 作者:Leah 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)使用python實(shí)現(xiàn)計(jì)算圓周率π的方法,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1.拉馬努金公式:

使用python實(shí)現(xiàn)計(jì)算圓周率π的方法

2.高斯-勒讓德公式:

設(shè)置初始值:
反復(fù)執(zhí)行以下步驟直到 與 之間的誤差到達(dá)所需精度:
則π的近似值為:
面給出前三個(gè)迭代結(jié)果(近似值精確到第一個(gè)錯(cuò)誤的位數(shù)):
3.140...
3.14159264...
3.1415926535897932382...
該算法具有二階收斂性,本質(zhì)上說就是算法每執(zhí)行一步正確位數(shù)就會(huì)加倍。

3.波爾文四次迭代式

這個(gè)公式由喬納森·波爾文和彼得·波爾文于1985年發(fā)表的。

bailey-borwein-plouffe算法使用python實(shí)現(xiàn)計(jì)算圓周率π的方法

這個(gè)公式簡(jiǎn)稱BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同發(fā)表。它打破了傳統(tǒng)的圓周率的算法,可以計(jì)算圓周率的任意第n位,而不用計(jì)算前面的n-1位。這為圓周率的分布式計(jì)算提供了可行性。

4.丘德諾夫斯基公式

這是由丘德諾夫斯基兄弟發(fā)現(xiàn)的,十分適合計(jì)算機(jī)編程,是目前計(jì)算機(jī)使用較快的一個(gè)公式。

5.萊布尼茨公式

π/4=1-1/3+1/5-1/7+1/9-1/11+……

6.蒙特卡羅法(打鳥法)

一個(gè)正方形內(nèi)部相切一個(gè)圓,圓和正方形的面積之比是π/4。 

使用python實(shí)現(xiàn)計(jì)算圓周率π的方法 
在這個(gè)正方形內(nèi)部,隨機(jī)產(chǎn)生n個(gè)點(diǎn)(這些點(diǎn)服從均勻分布),計(jì)算它們與中心點(diǎn)的距離是否大于圓的半徑,以此判斷是否落在圓的內(nèi)部。

統(tǒng)計(jì)圓內(nèi)的點(diǎn)數(shù),與n的比值乘以4,就是π的值。理論上,n越大,計(jì)算的π值越準(zhǔn)。

代碼如下:

import mathimport timescale=10print("執(zhí)行開始")t=time.process_time()for i in range(scale+1):    a,b='**'*i,'..'*(scale-i)    c=(i/scale)*100    π=4*(4*math.atan(1/5)-math.atan(1/239))    print("[{}{}->%{}]".format(a,b,c))    time.sleep(0.1)print(π)print("程序用時(shí):{:.2f}s".format(t))print("執(zhí)行結(jié)束")

上述就是小編為大家分享的使用python實(shí)現(xiàn)計(jì)算圓周率π的方法了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI