上QQ阅读APP看书,第一时间看更新
1.4 计算π
数学中重要的数字π(3.14159…)可以使用很多公式推导出来。最简单的公式之一是莱布尼茨公式。它假定以下无穷级数收敛于π:
注意,无穷级数的分子均为4,而分母逐项增加2,并且对每一项的运算在加法和减法之间交替进行。
可以通过将公式的各个部分转换为函数中的变量来对无穷级数进行建模。分子可以是常数4,分母可以是从1开始并以2递增的变量。根据是加法还是减法,运算符可以表示为-1或1。最后,代码清单1.19中使用变量pi(即π)在for循环过程中保存各级数之和。
代码清单1.19 PiCalculator.java
提示
在Java中,double是64位浮点数,它们比32位浮点数的精度更高。
在建模或仿真某个有趣的概念时,直接套用公式的代码实现方式是一种简单而高效的方法,以上函数就是一个很好的例子。直接转换是一种有用的工具,但必须牢记它不一定是最有效的解决方案。其实,π的莱布尼茨公式可以用更高效或更紧凑的代码来实现。
注意
无穷级数中的项越多(调用calculatePi()时nTerms的值越大),π的最终计算结果就越精确。