一、什么是马青公式
马青公式由英国天文学教授约翰·马青(John Machin ,1686 –1751)于1706年发现,他利用这个公式计算到了100位的圆周率。
马青公式每计算一项可以得到位的十进制精度。通过适当地编程,可以使它的计算过程中乘数和除数都不超过整型数据范围,所以可以很容易地在计算机上编程实现。无需计算高精度浮点数乘法、除法或平方根,故无需使用复杂的FFT算法加速。
为了计算更高的十进制位数,不仅需要计算更多的项数,还要使用更长的数组来保留更高的精度。故马青公式的时间复杂度为. 故此,如果要计算极多的位数,如百万位以上,一般不使用马青公式。
还有很多类似于马青公式的反正切公式。在所有这些公式中,马青公式是较为简洁且迅速的。
二、马青公式如下:
三、Python代码如下
# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
"""
#首先输入计算圆周率Π后的多少个小数
number = int(input("请输入你要计算多少位的圆周率Π:"))
#多计算十位,防止位数出现取舍的影响(多算10为小数)
number1 = number + 10
#定义计算小数的位数
b = 10**number1
#求首项的小数【4/5】
x1 = b*4//5
#求1/239的小数
x2 = b*1