描述
用python计算圆周率PI
1.要求能算到小数点后面越多越好(5分)
2.并用进度条提示算的进度,,能给出多种进度条越好(5分)
3.要求给出算圆周率Pi具体公式或者算法说明
进度条设计参考:https://www.cnblogs.com/dream4567/p/9690828.html
简单直接进度条设计:https://blog.csdn.net/xiaodongxiexie/article/details/70495618
https://blog.csdn.net/qq_40666028/article/details/79335961
#根据蒙特卡洛方法的原理,通过 hits 的数量和总投掷次数,计算得到圆周率 pi 的近似值。 from random import random from math import sqrt import time DARTS = 10**7 #投掷次数 hits=0.0 #落在圆内的次数 a=1 start=time.perf_counter() #开始计时(程序运行时间) for i in range(1,DARTS+1): x,y=random(),random() #随机数x,y(0-1之间),模拟投掷坐标 dist=sqrt(x**2+y**2) if dist <=1.0: #坐标到原点的距离,<1在圆内,>1在圆外 hits=hits+1 #在圆内的次数 #进度条设置 if i == DARTS*0.01*a: print("\r%{}[{}->{}]".format(a,'*'*a,'-'*(10-a))) a+=3 pi=4*(hits/DARTS) #面积:pi*(r^2)=2r*2r ==> pi= 4*(S圆/S正方形) end=time.perf_counter() #结束计时 print("pi值是{}.",format(pi)) print("运行时间是:{:5.5}s".format(end-start)) #{:5.5}宽度为5,保留5位小数
运行结果:
标签:hits,PI,进度条,python,圆周率,random,DARTS,pi From: https://www.cnblogs.com/qinuoqwq/p/17831868.html