Python計(jì)算開(kāi)方、立方、圓周率,精確到小數(shù)點(diǎn)后任意位的方法
Python計(jì)算的位數(shù)
在電腦上做了一個(gè)實(shí)驗(yàn),看看python能計(jì)算到多少位,一下是結(jié)果。
x = math.sqrt((3)) print ("%.53f"%(x)) print ("%.63f"%(x)) print ("%.83f"%(x))
1.73205080756887719317660412343684583902359008789062500 1.732050807568877193176604123436845839023590087890625000000000000 1.73205080756887719317660412343684583902359008789062500000000000000000000000000000000 1.73205080756887719317660412343684583902359008789062500000000000000000000000000000000
計(jì)算立方根公式
設(shè)A = X^3,求X.稱為開(kāi)立方。 開(kāi)立方有一個(gè)標(biāo)準(zhǔn)的公式:
例如,A=5,,即求5介于1的3次方至2的3次方之間(1的3次方=1,2的3次方=8)
初始值X0可以取1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,都可以。例如我們?nèi)0 = 1.9按照公式:
第一步:X1=1.9+(5/1.9²-1.9)1/3=1.7;
即5/1.9×1.9=1.3850416,1.3850416-1.9=-0.5149584,-0.5149584×1/3=-0.1716528,1.9+(-0.1716528)=1.7。即取2位數(shù)值,,即1.7。
第二步:X2=1.7+(5/1.7²-1.7)1/3=1.71;
即5/1.7×1.7=1.73010,1.73-1.7=0.03,0.03×1/3=0.01,1.7+0.01=1.71。取3位數(shù),比前面多取一位數(shù)。
第三步:X3=1.71+(5/1.71²-1.71)1/3=1.709;
第四步:X4=1.709+(5/1.709²-1.709)1/3=1.7099;
這種方法可以自動(dòng)調(diào)節(jié),第一步與第三步取值偏大,但是計(jì)算出來(lái)以后輸出值會(huì)自動(dòng)轉(zhuǎn)??;第二步,第四步輸入值偏小,輸出值自動(dòng)轉(zhuǎn)大。即5=1.7099³ 當(dāng)然初始值X0也可以取1.1,1.2,1.3,。。。1.8,1.9中的任何一個(gè),都是X1 = 1.7 。當(dāng)然,我們?cè)趯?shí)際中初始值最好采用中間值,即1.5。 1.5+(5/1.5²-1.5)1/3=1.7。
增加計(jì)算步驟,可以得到任意精度的值
計(jì)算根號(hào)2任意位數(shù)
開(kāi)平方公式
如果用這個(gè)公式開(kāi)平方,只需將3改成2,2改成1。即
import sys n = 2 s = 0 while True: for si in range(9,-1,-1): nx = n - ((2*s*10+si)*si) if nx>=0: s = s*10+si n = nx*100 sys.stdout.write(str(si)) sys.stdout.flush() break
計(jì)算開(kāi)5次方公式,精確至任意位數(shù)
計(jì)算圓周率任意位數(shù)
因?yàn)楦鶕?jù)馬青公式π/4=4arctg1/5-arctg1/239
又因?yàn)閍rctgX=X-(1/3)X^3+(1/5)X^5-(1/7)X^7+……+[(-1)^(n-1)/((2n-1)]*X^(2n-1))
變形得π/4=(4/5-1/239)-1/3(4/5^3-1/239^3)+1/5(4/5^5-1/239^5)……
所以可以用python語(yǔ)言編寫出求圓周率到任意位的程序如下:
n = int(raw_input('請(qǐng)鍵入想要計(jì)算到小數(shù)點(diǎn)后的位數(shù)n:')) #先鍵入字符串,再轉(zhuǎn)化為整數(shù) w = n+10 #多計(jì)算10位,防止尾數(shù)取舍的影響 b = 10**w #算到小數(shù)點(diǎn)后w位 x1 = b*4//5 #求含4/5的首項(xiàng) x2 = b// -239 #求含1/239的首項(xiàng) he = x1+x2 #求第一大項(xiàng) n *= 2 #設(shè)置下面循環(huán)的終點(diǎn),即共計(jì)算n項(xiàng) for i in xrange(3,n,2): #循環(huán)初值=3,末值2n,步長(zhǎng)=2 x1 //= -25 #求每個(gè)含1/5的項(xiàng)及符號(hào) x2 //= -57121 #求每個(gè)含1/239的項(xiàng)及符號(hào) x = (x1+x2) // i #求兩項(xiàng)之和 he += x #求總和 pai = he*4 #求出π pai //= 10**10 #舍掉后十位 print pai #輸出圓周率π的值,
以上這篇Python計(jì)算開(kāi)方、立方、圓周率,精確到小數(shù)點(diǎn)后任意位的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)人像動(dòng)漫化的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)人像動(dòng)漫化的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05python中圖形庫(kù)turtle庫(kù)詳解(適用于計(jì)算機(jī)二級(jí))
Turtle庫(kù)是Python語(yǔ)言中的一個(gè)圖形庫(kù),可以用來(lái)繪制各種形狀,如線條、矩形、圓形等等,下面這篇文章主要給大家介紹了關(guān)于python中圖形庫(kù)turtle庫(kù)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08Deepsort + Yolo 實(shí)現(xiàn)行人檢測(cè)和軌跡追蹤的方法
這篇文章主要介紹了Deepsort + Yolo 實(shí)現(xiàn)行人檢測(cè)和軌跡追蹤,本項(xiàng)目通過(guò)采用深度學(xué)習(xí)方法實(shí)現(xiàn)YOLO算法行人檢測(cè)和deepsort算法對(duì)人員定位的和軌跡跟蹤,需要的朋友可以參考下2021-09-09python使用Flask操作mysql實(shí)現(xiàn)登錄功能
這篇文章主要介紹了python使用Flask操作mysql實(shí)現(xiàn)登錄功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05Django提示mysql版本過(guò)低:django.db.utils.NotSupportedError: My
這篇文章主要介紹了Django提示mysql版本過(guò)低:django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.26).的解決方法,文中有詳細(xì)的解決方案,具有一定的參考價(jià)值,需要的朋友可以參考下2024-03-03python 用lambda函數(shù)替換for循環(huán)的方法
今天小編就為大家分享一篇python 用lambda函數(shù)替換for循環(huán)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06淺談pytorch中的nn.Sequential(*net[3: 5])是啥意思
這篇文章主要介紹了pytorch中的nn.Sequential(*net[3: 5])是啥意思,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Django 自定義權(quán)限管理系統(tǒng)詳解(通過(guò)中間件認(rèn)證)
這篇文章主要介紹了Django 自定義權(quán)限管理系統(tǒng)詳解(通過(guò)中間件認(rèn)證),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03