【发布时间】:2016-05-09 17:49:20
【问题描述】:
我随机创建具有 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)
}
【问题讨论】:
-
如果事情是随机的,它们可能会重复——这是正常的随机行为。此外,其中包含 1-4 个的唯一数组并不多。当你用完时会发生什么?
-
@LouFranco 嗯,有 256 个,如果您只需要 4 个,那还不错。从技术上讲,您可以在 0..255 范围内生成 4 个数字并从这些数字生成数组(每两位代表一个数字)。也完全可以预先生成所有数组,然后从它们中随机选择。
标签: arrays swift random arc4random