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ǔ)言編寫(xiě)出求圓周率到任意位的程序如下:
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)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例
這篇文章主要介紹了Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例,以一個(gè)webpy站點(diǎn)在本機(jī)的兩個(gè)端口雙向通信下演示,需要的朋友可以參考下2016-06-06
使用Python 自動(dòng)生成 Word 文檔的教程
今天小編就為大家分享一篇使用Python 自動(dòng)生成 Word 文檔的教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Pyspider進(jìn)行API接口抓取和數(shù)據(jù)采集的實(shí)現(xiàn)
Pyspider是一個(gè)基于Python的強(qiáng)大的網(wǎng)絡(luò)爬蟲(chóng)框架,它提供了豐富的功能和靈活的擴(kuò)展性,使我們可以輕松地進(jìn)行數(shù)據(jù)的抓取和處理,本文主要介紹了Pyspider進(jìn)行API接口抓取和數(shù)據(jù)采集的實(shí)現(xiàn),感興趣的可以了解一下2023-09-09
python使用openCV遍歷文件夾里所有視頻文件并保存成圖片
這篇文章主要介紹了python使用openCV遍歷文件夾里所有視頻文件并保存成圖片,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-01-01
python實(shí)現(xiàn)將html表格轉(zhuǎn)換成CSV文件的方法
這篇文章主要介紹了python實(shí)現(xiàn)將html表格轉(zhuǎn)換成CSV文件的方法,涉及Python操作csv文件的相關(guān)技巧,需要的朋友可以參考下2015-06-06
python3.7實(shí)現(xiàn)云之訊、聚合短信平臺(tái)的短信發(fā)送功能
這篇文章主要介紹了python3.7實(shí)現(xiàn)云之訊、聚合短信平臺(tái)的短信發(fā)送功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09

