gpt4 book ai didi

arrays - 替换 Array of Array 中元素的位置

转载 作者:可可西里 更新时间:2023-11-01 01:05:19 27 4
gpt4 key购买 nike

我一直在尝试运行此循环来更改基于数组的元素的位置,但出现以下错误。不太确定哪里出了问题。任何想法或想法!谢谢。

enter image description here

var population = [[98, 8, 45, 34, 56], [9, 13, 65, 4, 90], [24, 5, 4, 56, 88], [3, 55, 22, 19, 10]]

private func randomIntergerInRange(low:Int, high:Int) -> Int {
let randomGeneratedNumber = low + Int(arc4random()) % (high - low);
return Int(randomGeneratedNumber)
}

for individual in population {
var mutate = 0.01

if mutate > Double(Float(arc4random()) / Float(UINT32_MAX)) {

var positionToMutate = randomIntergerInRange(0, (individual.count - 1))

var valueToAssign = randomIntergerInRange(minElement(individual), maxElement(individual))

individual[positionToMutate] = valueToAssign
print(individual)

}
}

最佳答案

数组按值传递,因此当您在每次迭代中使用 individual 时,它会被分配一份 population 子数组的副本,即使您使用 对于 var individual in population ... 您只改变原始数组的副本。

如果你想改变原始数组的值,你可以使用索引来实现,例如:

for index in population.indices {
var mutate = 0.01

if mutate > Double(Float(arc4random()) / Float(UINT32_MAX)) {

var positionToMutate = randomIntergerInRange(0, (population[index].count - 1))

var valueToAssign = randomIntergerInRange(minElement(population[index]), maxElement(population[index]))

population[index][positionToMutate] = valueToAssign
print(population[index])

}
}

关于arrays - 替换 Array of Array 中元素的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32298536/

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