我想在 Swift中生成多个不同的随机数.这是程序. 设置一个空数组 生成一个随机数 检查阵列是否为空 一个.如果数组为空,请插入随机数 湾如果数组不为空,请将随机数与数组中的数字进行
>设置一个空数组
>生成一个随机数
>检查阵列是否为空
一个.如果数组为空,请插入随机数
湾如果数组不为空,请将随机数与数组中的数字进行比较
一世.如果数字相同,请重复2
II.如果数字不相同,请插入随机数并重复2
import UIKit //the random number generator func randomInt(min: Int, max:Int) -> Int { return min + Int(arc4random_uniform(UInt32(max - min + 1))) } var temp = [Int]() for var i = 0; i<4; i++ { var randomNumber = randomInt(1, 5) if temp.isEmpty{ temp.append(randomNumber) } else { //I don't know how to continue... } }如果您使用您的方法问题是,您每次都会创建一个新的随机数.所以你可能有4次相同的随机数,所以你的数组只有一个元素.
因此,如果您只想在特定数字范围内(例如0-100)拥有一个数字数组,则可以按随机顺序填充数组,并按正常顺序填充数字.例如for for loop等:
var min = 1 var max = 5 for var i = min; i<= max; i++ { temp.append(i) }
之后,您可以使用shuffle方法使用this answer中的shuffle方法对数组的所有元素进行洗牌:
func shuffle<C: MutableCollectionType where C.Index == Int>(var list: C) -> C { let count = countElements(list) for i in 0..<(count - 1) { let j = Int(arc4random_uniform(UInt32(count - i))) + i swap(&list[i], &list[j]) } return list }
Ater,你可以这样做:
shuffle(temp) // e.g., [3, 1, 2, 4, 5]