使用 Streams 实现数学函数
Streams,尤其是 IntStreams,是实现求和项(Σ)的一种优雅方式。Stream 的范围可以用作求和的边界。
例如,Madhava 对 Pi 的近似由公式给出(来源: 维基百科 ): 
这可以用任意精度计算。例如,101 个术语:
double pi = Math.sqrt(12) *
IntStream.rangeClosed(0, 100)
.mapToDouble(k -> Math.pow(-3, -1 * k) / (2 * k + 1))
.sum();
注意: 使用 double 的精度,选择 29 的上限足以得到与 Math.Pi 无法区分的结果。