admin管理员组

文章数量:1660164

#拉马努金计算圆周率
import math
#求阶乘的函数
def factorial(n):
   if n==0:
       return 1
   else:
       return n*factorial(n-1)

#计算π值的函数
def estimate_pi():
    sum =0
    k=0
    f=2*(math.sqrt(2))/9801                      #根号2/9801
    while True:                                 #一直循环,直到最后一项小于10^(-15)时跳出循环
        fz = (26390*k + 1103)*factorial(4*k)     #求和项分子
        fm = (396**(4*k))*((factorial(k))**4)    #求和项分母
        t = f*fz/fm
        sum += t
        if t<1e-15:                              #最后一项小于10^(-15)时跳出循环
            break
        k += 1                                   #更新k值
    return 1/sum                                #计算sun的倒数

print("pi的值为:",estimate_pi())
#用于查看所写程序是否正确
print("pi的标准值为:",math.pi)

本文标签: estimatepi