python莱布尼茨法计算π_酷叮猫少儿编程讲堂——Python 用莱布尼茨等式求π
原標(biāo)題:酷叮貓少兒編程講堂——Python 用萊布尼茨等式求π
Python 用萊布尼茨等式求π
2018-08-01
德國大數(shù)學(xué)家萊布尼茨Leibniz在研究圓周率π的過程中發(fā)現(xiàn)一個(gè)數(shù)學(xué)公式是這樣的:
π/4 = 1 - 1/3 + 1/5 - 1/7 + ...
我們可以通過這個(gè)數(shù)學(xué)公式求得π的值,用程序檢驗(yàn)一下它的計(jì)算準(zhǔn)確度如何? 暫定參與計(jì)算的最后一項(xiàng)數(shù)值要小于10的-6次方
【分析】
我們觀察一下這個(gè)公式,發(fā)現(xiàn)分母都是奇數(shù),第一項(xiàng)是1,可理解成1/1, 而且偶數(shù)項(xiàng)都是負(fù)數(shù),奇數(shù)項(xiàng)都是正的,通過這個(gè)觀察我們就可以使用Python語言求出π的值。再對照高精度的π值,我們就可以知道它的精確度了。
【運(yùn)行結(jié)果】
【代碼】
from math import pifm = (i for i in range(1,int(1e6+2)) if i%2) # 找到所有可以參與計(jì)算的奇數(shù)分母pidiv4 = 0for id, a in enumerate(fm,start=1): # 萊布尼茨公式求 π/4 pidiv4 += (1/a) if id%2 else (-1/a)myPi = pidiv4*4 # 求出 πprint(pi, myPi)print(" ")# 以下代碼確定計(jì)算結(jié)果的精度count=Falseprec=0for a,b in zip(str(myPi), str(pi)): if a==b=='.': count = True if count: if a==b: prec+=1 else: breakprint("π 的計(jì)算精度精確到小數(shù)點(diǎn)后 {} 位".format(prec-1))
能近似求解圓周率的數(shù)學(xué)公式還很多,大家可以到網(wǎng)上再找一些,看看它們的計(jì)算精度如何.返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的python莱布尼茨法计算π_酷叮猫少儿编程讲堂——Python 用莱布尼茨等式求π的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vsphere ha 虚拟机监控错误_学
- 下一篇: 翻牌游戏如何打乱牌面java_剑仙登上虎