
Lv.1
在 【Python计算圆周率】算1万位用5秒 中回复
AGM公式: fromdecimalimport* getcontext().prec=10000#位数 a=x=Decimal(1)b=Decimal(1)/Decimal(2).sqrt()c=Decimal(1)/Decimal(4) foriinrange(0,20):y=aa=(a+b)/喵=(b*y).sqrt()c-=x*((a-y)**2)x*=2 withopen("派.txt","w")aspi:#数量大,输入到文件里pi.write(str((a+b)**2/(4*c))) _______________________________分割线___________________________________ 参考论文:EugeneSalamin于喵发表于 MathematicsofComputation 上的论文 ComputationofpiUsingArithmetic-GeometricMean 1w位0.9963607788085938秒
2022-02-07T13:27:22 点赞:0
在 【Python计算圆周率】算1万位用5秒 中回复
from decimal import *
import time
time_start = time.time()
getcontext().prec = 10000
a=x=Decimal(1)
b=Decimal(1)/Decimal(2).sqrt()
c=Decimal(1)/Decimal(4)
for i in range(0,20):
y=a
a=(a+b)/2
b=(b*y).sqrt()
c-=x*((a-y)**2)
x*=2
time_end=time.time()
print('totally cost',time_end-time_start)
2022-02-07T13:27:54 点赞:1