gpt4 book ai didi

ruby注入(inject)问题,结果不一样

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:15 24 4
gpt4 key购买 nike

这里是代码:计算时,有些错误:

    arr = [0.054954087385762455, 0.5093998626512432, 5.880466289995431, 0.8639141517665208, 0.2152490168404071]


sum = arr.inject {|sum, item| sum + item}

tmp = 0
arr.each do |pwr|
tmp = tmp + (pwr / sum - 0.2) ** 2
end
puts tmp # 0.42948006253339877



pp ( arr.inject { |result, item| result + (item / sum - 0.2) ** 2} ) # 0.4473023458029664

结果:

0.42948006253339877 != 0.4473023458029664

为什么??

最佳答案

您没有为 inject 指定起始值,因此它使用第一个值作为累加器而不是显式代码中的 0

改为这样做:

arr.inject(0) { ... }

关于ruby注入(inject)问题,结果不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com