gpt4 book ai didi

swift - 使用存储在两个数组中的数字和权重计算加权平均值

转载 作者:行者123 更新时间:2023-11-28 10:37:05 24 4
gpt4 key购买 nike

Stack Overflow 上已经有关于如何计算 [Int:Int] 字典的加权平均值的问题,包括使用 reduce 的奇特方法。但我现在将数字和权重存储在两个数组中。不保证这些数字是相同的。 执行此操作的Swift 方法是什么?是否可以使用像 reduce 这样的 Swift 特性?我希望有一种不使用 for 循环的方法。谢谢!

let numbers = [1, 2, 4, 3, 2]
let weights = [10, 20, 30, 15, 25]

最佳答案

没有 for 循环:

func weightedAverage(values: [Double], weights: [Double]) -> Double {
precondition(values.count > 0 && values.count == weights.count)

let totalWeight = weights.reduce(0.0, +)
precondition(totalWeight > 0)

return zip(values, weights)
.map { $0 * $1 }
.reduce(0.0, +) / totalWeight
}

let avg = weightedAverage(values: [1, 2, 4, 3, 2], weights: [10, 20, 30, 15, 25])
print(avg)

关于swift - 使用存储在两个数组中的数字和权重计算加权平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52975307/

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