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")
标签:10,运算,strpi,random,三种,239,x2,pi From: https://www.cnblogs.com/Calinio/p/17796726.html