为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

富国沪深 2022-04-28 15:58:25
使用 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)
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

我认为使用map()它可能更简单。

double inversionSum = Arrays.stream(arr).map(val -> 1 / val).sum();


查看完整回答
反对 回复 2022-04-28
?
POPMUISE

TA贡献1765条经验 获得超5个赞

reduce 中的错误是:Double.sum(1.0 / a, 1.0 / b),以 0.0 开始系列。现在检查为什么你的结果是 0.5。

如果要使用 reduce,请使用 Double.sum(a, 1.0 / b)。


查看完整回答
反对 回复 2022-04-28
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信