gpt4 book ai didi

arrays - Swift:确保没有两个数组是相同的

转载 作者:行者123 更新时间:2023-11-30 10:03:54 25 4
gpt4 key购买 nike

我随机创建具有 4 个随机数 (1-4) 的不同数组。但是我如何确保没有两个数组是相同的呢?

例如:[1,2,3,4], [4,3,2,1], [1,2,2,1], [1,2,3,4] <- 第一个和最后一个都是随机生成的,我如何检查它是否是随机的以及是否再次生成,如果不是,则继续?

这是我的代码,但我认为它不起作用,因为有几次我会看到两个相同的数组......

func randomNumbersArray(i: UInt32) -> [Int] {
let r = [Int(arc4random_uniform(i) + 1),
Int(arc4random_uniform(i) + 1),
Int(arc4random_uniform(i) + 1),
Int(arc4random_uniform(i) + 1)]
return r
}

func arrays() {
let main = randomNumbersArray(4)
qArray = main
aArray = main
bArray = randomNumbersArray(4)
cArray = randomNumbersArray(4)
dArray = randomNumbersArray(4)

if aArray == bArray || aArray == cArray || aArray == dArray ||
bArray == cArray || bArray == dArray || cArray == dArray {
bArray = randomNumbersArray(4)
cArray = randomNumbersArray(4)
dArray = randomNumbersArray(4)
}
print(aArray)
print(bArray)
print(cArray)
print(dArray)
}

最佳答案

类似这样的事情应该可以做到:

func randomNumbersArray(i: UInt32) -> [Int] {
let r = [Int(arc4random_uniform(i) + 1),
Int(arc4random_uniform(i) + 1),
Int(arc4random_uniform(i) + 1),
Int(arc4random_uniform(i) + 1)]
return r
}

func arrays() {
var randArrays = [[Int]]()

repeat {
let newArray = randomNumbersArray(4)

if !randArrays.contains{ $0 == newArray } {
randArrays.append(newArray)
}
} while randArrays.count < 4

//...
}

关于arrays - Swift:确保没有两个数组是相同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122248/

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