有进度条的圆周率运算

一、圆周率π的简介
圆周率的介绍
  圆周率用希腊字母 π(读作pài)表示,是一个常数(约等于3.141592654),是代表圆周长和直径的比值。它是一个即无限不循环小数,在日常生活中,通常都用3.14代表圆周率去进行近似计算。
圆周率的求解历程
  1965年,英国数学家约翰·沃利斯(John Wallis)出版了一本数学专著,其中他推导出一个公式,发现圆周率等于无穷个分数相乘的积。
  2015年,罗切斯特大学的科学家们在氢原子能级的量子力学计算中发现了圆周率相同的公式。
  2019年3月14日,谷歌宣布圆周率现已到小数点后31.4万亿位。
二、圆周率的近似计算
   1. 计算公式 

2. 方法讲解
  所用公式等式右边分子都为1,分母为递增数列,从第一项开始,奇数项符号为正,偶数项符号为负。等式右边的分母越大,越小,圆周率π计算的值越精确;换个角度讲,就是等式右边的项越多,计算的值越精确。
  3. 代码实现(python)

1 from math import fabs #导入数学模块

2 from time import perf_counter #导入时间模块

3

4 def Bar(i): #动态文本条

5 N = pow(10,level)

6 a = int((i/N)*50)

7 b = 50 - a

8 Y , N = '*' * a , '.' * b

9 print("\r计算中:{:3.0f}% [{}->{}] {:.2f}s"

10 .format(2*a,Y,N,perf_counter()),end='')

11

12 level = eval(input('计算Pi精确到小数点后几位数:'))

13 print('\n{:=^70}'.format('计算开始'))

14 a,b,pi,tmp = 1,1,0,1

15 i = 0

16 '''

17 a 分子 | b 分母 | pi 圆周率

18 tmp 存储a/b的值 | i 执行进度

19 '''

20 perf_counter() #开始计时

21 while (fabs(tmp) >= pow(10,-level)): #计算Pi

22 pi += tmp

23 b += 2

24 a = -a

25 tmp = a/b

26 i += 2

27 Bar(i) #调用函数,实时显示计算进度

print('\n{:=^70}'.format('计算完成'))

30 print('\nPi的计算值为:{}'.format(round(pi*4,level))) #输出计算结果

 

转载于:https://www.cnblogs.com/wjaihui/p/10561564.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值