日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python计算圆周率_用python计算圆周率Π

發布時間:2023/12/31 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python计算圆周率_用python计算圆周率Π 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、要求:

1.計算到圓周率后面越多位越好。

2.用進度條顯示計算的進度。

3.要求給出圓周率Π的具體計算方法和解釋。

二、算法:

1.拉馬努金公式:

2.高斯-勒讓德公式:

設置初始值:

反復執行以下步驟直到

之間的誤差到達所需精度:

則π的近似值為:

下面給出前三個迭代結果(近似值精確到第一個錯誤的位數):

3.140...

3.14159264...

3.1415926535897932382...

該算法具有二階收斂性,本質上說就是算法每執行一步正確位數就會加倍。

3.波爾文四次迭代式

這個公式由喬納森·波爾文和彼得·波爾文于1985年發表的。

bailey-borwein-plouffe算法

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

4.丘德諾夫斯基公式

這是由丘德諾夫斯基兄弟發現的,十分適合計算機編程,是目前計算機使用較快的一個公式。

5.萊布尼茨公式

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

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

一個正方形內部相切一個圓,圓和正方形的面積之比是π/4。

在這個正方形內部,隨機產生n個點(這些點服從均勻分布),計算它們與中心點的距離是否大于圓的半徑,以此判斷是否落在圓的內部。

統計圓內的點數,與n的比值乘以4,就是π的值。理論上,n越大,計算的π值越準。

三、算法實現

以下采用蒙特卡羅法(打鳥法),代碼及圖片如下。

importmathimporttime

scale=10

print("執行開始")

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("程序用時:{:.2f}s".format(t))print("執行結束")

運行結果:

Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32bit (Intel)] on win32

Type"help", "copyright", "credits" or "license()" formore information.>>>

================= RESTART: C:/Users/Benny/Desktop/打鳥法求圓周率.py =================執行開始

[....................->%0.0]

[**..................->%10.0]

[****................->%20.0]

[******..............->%30.0]

[********............->%40.0]

[**********..........->%50.0]

[************........->%60.0]

[**************......->%70.0]

[****************....->%80.0]

[******************..->%90.0]

[********************->%100.0]

3.1415926535897936

程序用時:0.11s

執行結束>>>

另外,進度條還可以用python的pip庫來實現:

import mathimport timescale=10print("執行開始")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("%{:3}[{}->{}]".format(a,b,c)) time.sleep(0.1)print(π)print("{:.2f}s".format(t))print("執行結束")

總結

以上是生活随笔為你收集整理的python计算圆周率_用python计算圆周率Π的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。