gpt4 book ai didi

ios - 分配数组值,使最大值为 1,最小值为 0

转载 作者:可可西里 更新时间:2023-11-01 00:52:32 25 4
gpt4 key购买 nike

我想这一定是一个基本的数学运算,但我真的想不通。我需要根据给定数组中的值获取 0 到 1 之间的值数组。因此,例如,如果我们有一个初始数组 [24, 128, 52],则结果数组应该是 [0, 1, 0.5]。最大值和最小值应始终分别为 1 和 0,其余值应按比例介于两者之间。

我如何在 Swift 中执行此操作?

最佳答案

从数组开始:

let sourceArray = [24.0, 128.0, 52.0]

存储最小和最大元素:

let min = minElement(sourceArray) // 24.0
let max = maxElement(sourceArray) // 128.0

标准化每个元素并将结果映射到一个新数组:

let results = sourceArray.map { ($0 - min) / (max - min) }

结果是:

[0, 1, 0.2692307692307692]

您指定您想要 [0, 1, 0.5],但我认为这是错误的,因为您说“其余部分应该按比例位于它们之间”。输入 [24.0, 128.0, 76.0] 将输出 [0, 1, 0.5]

注意:源数组不能是[Int],否则映射操作会将结果四舍五入为 1 或 0。如果您需要使用 [Int] 您必须转换 map 操作中的每个元素。

关于ios - 分配数组值,使最大值为 1,最小值为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32169111/

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