小编Kaz*_*mun的帖子

在 Swift 中从范围生成唯一随机数列表

我想编写一个应该返回整数列表的函数。整数列表大小和最大随机数将由用户定义,用户将通过函数参数传递。我的特殊要求是,列表中的整数不能是多余的。
我的方法使用Array

func getRandomNumbers(maxNumber: Int, listSize: Int)-> [Int]{
    var randomNumbers = [Int]()
    for _ in 1...listSize{
        let randomNumber = Int(arc4random_uniform(UInt32(listSize)))
        randomNumbers.append(randomNumber)
    }
    return randomNumbers
}
Run Code Online (Sandbox Code Playgroud)

问题:有时我用这种方法得到重复的值。
我知道 swiftSet不具有重复值。

我的方法使用Set

func getRandomNumbers(maxNumber: Int, listSize: Int)-> Set<Int>{
    var randomNumbers = Set<Int>()
    for _ in 1...listSize{
        let randomNumber = Int(arc4random_uniform(UInt32(listSize)))
        randomNumbers.insert(randomNumber)
    }
    return randomNumbers
} 
Run Code Online (Sandbox Code Playgroud)

问题:有时Set尺寸小于用户定义的尺寸。

random arc4random swift

1
推荐指数
1
解决办法
5151
查看次数

标签 统计

arc4random ×1

random ×1

swift ×1