溫馨提示×

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

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

python利用公式計(jì)算π的方法

發(fā)布時(shí)間:2020-08-24 10:15:54 來(lái)源:億速云 閱讀:3382 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下python利用公式計(jì)算π的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

python利用公式計(jì)算π的方法:首先導(dǎo)入數(shù)學(xué)模塊及時(shí)間模塊;然后計(jì)算Pi精確到小數(shù)點(diǎn)后幾位數(shù),代碼為【print('\n{:=^70}'.format('計(jì)算開始'))】;最后完成計(jì)算,代碼為【print('\n{:=^70}'】

python利用公式計(jì)算π的方法:

一、π的簡(jiǎn)介

π的介紹

  圓周率用希臘字母 π(讀作pài)表示,是一個(gè)常數(shù)(約等于3.141592654),是代表圓周長(zhǎng)和直徑的比值。它是一個(gè)即無(wú)限不循環(huán)小數(shù),在日常生活中,通常都用3.14代表圓周率去進(jìn)行近似計(jì)算。

π的求解歷程

  •   1965年,英國(guó)數(shù)學(xué)家約翰·沃利斯(John Wallis)出版了一本數(shù)學(xué)專著,其中他推導(dǎo)出一個(gè)公式,發(fā)現(xiàn)圓周率等于無(wú)窮個(gè)分?jǐn)?shù)相乘的積。

  •   2015年,羅切斯特大學(xué)的科學(xué)家們?cè)跉湓幽芗?jí)的量子力學(xué)計(jì)算中發(fā)現(xiàn)了圓周率相同的公式。

  •   2019年3月14日,谷歌宣布圓周率現(xiàn)已到小數(shù)點(diǎn)后31.4萬(wàn)億位。

  此處用一個(gè)自我感覺‘良好’的公式進(jìn)行求解,說(shuō)良好是因?yàn)橛?jì)算結(jié)果相對(duì)準(zhǔn)確,但計(jì)算過(guò)程用時(shí)較長(zhǎng),一起來(lái)學(xué)習(xí)吧~~~

二、π的近似計(jì)算

  1. 計(jì)算公式

python利用公式計(jì)算π的方法

  2. 方法講解

  所用公式等式右邊分子都為1,分母為遞增數(shù)列,從第一項(xiàng)開始,奇數(shù)項(xiàng)符號(hào)為正,偶數(shù)項(xiàng)符號(hào)為負(fù)。等式右邊的分母越大,越小,圓周率π計(jì)算的值越精確;換個(gè)角度講,就是等式右邊的項(xiàng)越多,計(jì)算的值越精確。

3. 代碼實(shí)現(xiàn)(python)

 1 from math import fabs           #導(dǎo)入數(shù)學(xué)模塊
 2 from time import perf_counter   #導(dǎo)入時(shí)間模塊
 3 
 4 def Bar(i):         #動(dòng)態(tài)文本條
 5     N = pow(10,level)
 6     a = int((i/N)*50)
 7     b = 50 - a
 8     Y , N = '*' * a , '.' * b
 9     print("\r計(jì)算中:{:3.0f}% [{}->{}] {:.2f}s"
10           .format(2*a,Y,N,perf_counter()),end='')
11     
12 level = eval(input('計(jì)算Pi精確到小數(shù)點(diǎn)后幾位數(shù):'))
13 print('\n{:=^70}'.format('計(jì)算開始'))
14 a,b,pi,tmp = 1,1,0,1
15 i = 0
16 '''
17 a 分子  |  b 分母  |  pi 圓周率
18 tmp 存儲(chǔ)a/b的值    |  i  執(zhí)行進(jìn)度
19 '''
20 perf_counter()      #開始計(jì)時(shí)
21 while (fabs(tmp) >= pow(10,-level)): #計(jì)算Pi
22     pi += tmp
23     b += 2
24     a = -a
25     tmp = a/b
26     i += 2
27     Bar(i)          #調(diào)用函數(shù),實(shí)時(shí)顯示計(jì)算進(jìn)度
28 
29 print('\n{:=^70}'.format('計(jì)算完成'))
30 print('\nPi的計(jì)算值為:{}'.format(round(pi*4,level))) #輸出計(jì)算結(jié)果

4. 圖片示例

python利用公式計(jì)算π的方法

python利用公式計(jì)算π的方法

python利用公式計(jì)算π的方法

  由上面3張圖片可知,精確到小數(shù)點(diǎn)后4位只要14.07秒,精確到小數(shù)點(diǎn)后6位也需要124.61秒,而精確到小數(shù)點(diǎn)后8位就需要 850 / 8% = 10625秒,約為 177 分鐘,也就是2.95個(gè)小時(shí)。這種方法固然好,但計(jì)算起來(lái)還是需要很長(zhǎng)一段時(shí)間的。

更多相關(guān)資訊:

python實(shí)現(xiàn)計(jì)算π的值到任意位的方法

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

看完了這篇文章,相信你對(duì)python利用公式計(jì)算π的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(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