猿问

使用 Stream.reduce 的求逆和不正确

使用 Stream.reduce 求逆求和不正确,这里出了什么问题?


double[] array = {1.0, 2.0};

double iunversionSum = Arrays.stream(array).reduce(0.0, (a, b) -> Double.sum(1.0 / a, 1.0 / b));

输出为 0.5 但预期为 1.5 (1/1 + 1/2)


富国沪深
浏览 132回答 2
2回答

狐的传说

我认为使用map()它可能更简单。double inversionSum = Arrays.stream(arr).map(val -> 1 / val).sum();

POPMUISE

reduce 中的错误是:Double.sum(1.0 / a, 1.0 / b),以 0.0 开始系列。现在检查为什么你的结果是 0.5。如果要使用 reduce,请使用 Double.sum(a, 1.0 / b)。
随时随地看视频慕课网APP

相关分类

Java
我要回答