有进度条圆周率计算
Posted wendy123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有进度条圆周率计算相关的知识,希望对你有一定的参考价值。
一、用python计算圆周率pi
(1)蒙特卡罗法
1 from random import random 2 from time import perf_counter 3 DARTS = 1000 4 hits = 0.0 5 start = perf_counter() 6 for i in range(1, DARTS+1): 7 x, y = random(), random() 8 dist = pow(x**2 + y**2, 0.5) 9 if dist <= 1.0: 10 hits = hits + 1 11 pi = 4 * (hits/DARTS) 12 print("圆周率值是: {}".format(pi)) 13 print("运行时间是: {:.5f}s".format(perf_counter()-start))
(2)公式法
1 pi = 0 2 N = 100 3 for k in range(N): 4 pi += 1/pow(16, k) * (4 / (8 * k + 1) - 2 /(8 * k + 4) - 1/(8 * k + 5) - 1 /(8 * k + 6)) 5 print("圆周率值是:{}".format(pi))
二、带进度条
1 import math 2 import time 3 scale=20 4 t=time.process_time() 5 for i in range(scale+1): 6 a,b=‘**‘*i,‘..‘*(scale-i) 7 c=(i/scale)*100 8 π=4*(4*math.atan(1/5)-math.atan(1/239)) 9 print("%[{:3}{}->{}]".format(a,b,c)) 10 time.sleep(0.1) 11 print(π) 12 print("{:.2f}s".format(t)) 13 print("执行结束")
(改变参数可改变进度条长度)
我没下载IDLE,只能在spyder里运行
以上是关于有进度条圆周率计算的主要内容,如果未能解决你的问题,请参考以下文章