数学公式法(级数)估计圆周率

1)π/4≈1-1/3+1/5-1/7+······+(-1)^(n-1)/(2n-1)
2)π/2≈2 * 2/3 * 4/3 *4/5 * 6/5 * 6/7 *······ * 2n/(2n-1) *2n/(2n+1)
3)π/2≈1+1/3+1/3 * 2/5+1/3 * 2/5 * 3/7+······+An * (n-1)/(2n-1)

import random
import time
def pi_1(n):
    pi=0
    for i in range(1,n+1):
        if i%2==0:
            pi=pi-(1/(2*i-1))
        else:
            pi=pi+(1/(2*i-1))
    return 4*pi
# print(pi_1(45))

def pi_2(n):
    pi=1
    for i in range(1,n+1):
        pi=pi*((2*i)/(2*i-1))*((2*i)/(2*i+1))
    return 2*pi
# print(pi_2(58))
def pi_3(n):
    s=1
    L=[1]
    for i in range(2,n+1):
        s=s*((i-1)/(2*i-1))
        L.append(s)
    return 2*sum(L)
# print(pi_3(1000))
if __name__=="__main__":
    N=int(input("请输入比较整数:"))
    t1=time.time()
    print(pi_1(N))
    t2=time.time()
    print("时间大约:",t2-t1)

    t1 = time.time()
    print(pi_2(N))
    t2 = time.time()
    print("时间大约:",t2 - t1)

    t1 = time.time()
    print(pi_3(N))
    t2 = time.time()
    print("时间大约:",t2 - t1)



在这里插入图片描述

发布了51 篇原创文章 · 获赞 5 · 访问量 2151

猜你喜欢

转载自blog.csdn.net/weixin_44659084/article/details/103256307