Python 根據馬青公式計算圓周率


可計算小數點后任意位的圓周率(理論,具體看電腦性能,時間計算可能不太准確)

# -*- coding: utf-8 -*-
from __future__ import division


####################導入時間模塊
import time
###############計算當前時間
time1=time.time()
################算法根據馬青公式計算圓周率####################


number = int(input('請輸入想要計算到小數點后的位數n:'))


# 多計算10位,防止尾數取舍的影響
number1 = number+10


# 算到小數點后number1位
b = 10**number1


# 求含4/5的首項
x1 = b*4//5
# 求含1/239的首項
x2 = b// -239


# 求第一大項
he = x1+x2
#設置下面循環的終點,即共計算n項
number *= 2


#循環初值=3,末值2n,步長=2
for i in range(3,number,2):
# 求每個含1/5的項及符號
x1 //= -25
# 求每個含1/239的項及符號
x2 //= -57121
# 求兩項之和
x = (x1+x2) // i
# 求總和
he += x


# 求出π
pai = he*4
#舍掉后十位
pai //= 10**10


############ 輸出圓周率π的值
paistring=str(pai)
result=paistring[0]+str('.')+paistring[1:len(paistring)]
print (result)


time2=time.time()
print (u'總共耗時:' + str(time2 - time1) + 's')

僅供學習參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM