我正在寻找一个公式/算法来以给定的精度计算 PI~3.14。
公式/算法必须只有非常基本的算术
- +:加法
- -:减法
- *:乘法
- /:除法
因为我想在 C++ 中实现这些操作,并希望实现尽可能简单(不允许使用 bignum 库)。
我发现这个计算 Pi 的公式非常简单:
Pi/4 = 1 - 1/3 + 1/5 - 1/7 + ... = sum( (-1)^(k+1)/(2*k-1) , k=1..inf )
(请注意,上述运算符可以轻松实现 (-1)^(k+1) )。
但是这个公式的问题是无法指定要计算的位数。换句话说,没有直接的方法来确定何时停止计算。
n-1
也许解决此问题的方法是计算th 和th 计算项之间的差异,n
并将其视为当前误差。
无论如何,我正在寻找一个具有这些属性并且更快地收敛到 Pi 的公式/算法