一、π的简介
π的介绍
Pi,由希腊字母 π(读作 pài)表示,是一个常数(约等于 3.141592654),表示圆的周长与其直径的比值。它是一个非循环小数。在日常生活中,通常使用 3.14 来表示 pi 进行近似计算。
π的求解历程
1965 年,英国数学家约翰·沃利斯(John Wallis)发表了一本关于数学的专着,他在其中推导出一个公式,发现 pi 等于无限个分数的乘积。
2015年,罗切斯特大学的科学家们在氢原子能级的量子力学计算中发现了圆周率相同的公式。
2019 年 3 月 14 日,谷歌宣布 pi 比率现已达到小数点后 31.4 万亿位。
二、π的近似计算
1 计算公式
2. 方法讲解
所用公式等式右边分子都为1,分母为递增数列,从第一项开始,奇数项符号为正,偶数项符号为负。等式右边的分母越大,越小,圆周率π计算的值越精确;换个角度讲,就是等式右边的项越多,计算的值越精确。
3. 代码实现(python)
from math import fabs #导入数学模块
from time import perf_counter #导入时间模块
def Bar(i): #动态文本条
N = pow(10,level)
a = int((i/N)*50)
b = 50 - a
Y , N = '*' * a , '.' * b
print("\r计算中:{:3.0f}% [{}->{}] {:.2f}s".format(2*a,Y,N,perf_counter()),end='')
level = eval(input('计算Pi精确到小数点后几位数:'))
print('\n{:=^70}'.format('计算开始'))
a,b,pi,tmp = 1,1,0,1
i = 0
'''
a 分子 | b 分母 | pi 圆周率
tmp 存储a/b的值 | i 执行进度
'''
perf_counter() #开始计时
while (fabs(tmp) >= pow(10,-level)): #计算Pi
pi += tmp
b += 2
a = -a
tmp = a/b
i += 2
Bar(i) #调用函数,实时显示计算进度
print('\n{:=^70}'.format('计算完成'))
print('\nPi的计算值为:{}'.format(round(pi*4,level))) #输出计算结果
4. 图片示例
从以上3张图可以看出,精确到小数点后4位仅需14.07秒,精确到小数点后6位需要124.61秒,850 / 8% = 10625秒可精确到小数点后8位,即大约是 177 分钟,也就是 2.95 小时。这个方法不错,但是计算时间还是比较长的。
“Pi”是一种奇妙而美丽的存在,它是一个不重复的小数,就像一种有缺陷的美,只要你有发现美的眼睛!
2011年,国际数学协会正式宣布将每年3月14日定为国际数学节。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中输入连续字符08/21
- ♥ 你用什么软件写python10/09
- ♥ 如何在python中求解方程08/13
- ♥ Python如何执行js代码12/05
- ♥ python中的str函数是什么10/03
- ♥ python中的conn是什么11/07
内容反馈