有进度条圆周率Π计算
?
圓周率π的計(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è)自我感覺(jué)‘良好’的公式進(jìn)行求解,說(shuō)良好是因?yàn)橛?jì)算結(jié)果相對(duì)準(zhǔn)確,但計(jì)算過(guò)程用時(shí)較長(zhǎng),一起來(lái)學(xué)習(xí)吧~~~
?
?
二、圓周率的近似計(jì)算
? 1.?計(jì)算公式?
?
2. 方法講解
所用公式等式右邊分子都為1,分母為遞增數(shù)列,從第一項(xiàng)開(kāi)始,奇數(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 - a8 Y , N = '*' * a , '.' * b9 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ì)算開(kāi)始')) 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() #開(kāi)始計(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. 圖片示例
?
?
?
?
? 由上面3張圖片可知,精確到小數(shù)點(diǎn)后1位只要6.68秒,精確到小數(shù)點(diǎn)后2位也需要45.44秒。這種方法固然好,但計(jì)算起來(lái)仍需要很長(zhǎng)一段時(shí)間。
《圓周率π》是個(gè)奇妙而美麗的存在,它是個(gè)無(wú)限不循環(huán)小數(shù),就像是一種缺陷美,只要你有發(fā)現(xiàn)美的眼睛!
轉(zhuǎn)載于:https://www.cnblogs.com/Exin/p/10554703.html
總結(jié)
以上是生活随笔為你收集整理的有进度条圆周率Π计算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android 反编译apk文件(转)
- 下一篇: easyui问题小结