pi的三种运算

 1 #蒙卡洛特矩中圆算概率
 2 import random
 3 import time
 4 from tqdm import tqdm
 5 
 6 count = 0
 7 a=eval(input())
 8 random.seed(125)
 9 data_iter=tqdm(range(a),unit='Data')
10 for i, _ in enumerate(data_iter):
11     data_iter.set_description('Data points {}/{}'.format(i+1,a))
12     x,y=random.random(),random.random()
13     distance=pow(x**2 +y**2,0.5)#随机点到原点的距离
14     if distance<=1:
15         count+=1
16     time.sleep(0.05)
17 print((count/a)*4)#1/4个圆

这是撒点法

之后两种都是公式法

#马青公式
num=eval(input())#算到的位数
num1 = num+10#防止取舍
n=10**num1
x1=n*4//5#首项小数
x2=n*1//-239#1/239的小数
Sum=x1 + x2
num*=2
for i in range(3,num,2):
    x1//=-25
    x2//=(-239*239)
    x=(x1+x2)//i
    Sum += x
p=Sum*4
p//=10**10
strpi=str(p)
pi=strpi[0]+'.'+strpi[1:len(strpi)]
print(pi)

#泰勒级数关系式

n=eval(input()) #0<n<1,因为每个多项式的分子都是1,分母都大于1
pi_4=k=0
f=1
while abs(1/(2*k+1))>=n:
    pi_4=pi_4+f*1/(2*k+1)
    k=k+1
    f=-f #1,-1,1,-1
    
print(pi_4*4)

干员:

print("3142")

 

posted @ 2023-10-29 22:42  Colindada  阅读(73)  评论(0)    收藏  举报