我遇到一个问题,根据我从Int.random(:in)方法调用获得的随机数,我有一个测试用例失败。
我环顾四周,无法找到拨打相同电话的好方法,但能够为生成器提供您自己的种子。
有人知道这样做的好方法吗?
答案 0 :(得分:1)
请参见https://developer.apple.com/documentation/swift/systemrandomnumbergenerator
SystemRandomNumberGenerator
将自动成为种子。如果要使用自己的种子RNG,则必须自己实现,并遵守RandomNumberGenerator协议。
答案 1 :(得分:-3)
我了解到,您需要使用SystemRandomNumberGenerator从种子整数中获取随机整数。
种子项目是11、22、33、44、55、66、77、88或其他。 您实现:
let seed:[Int] = [11, 22, 33, 44, 55, 66, 77, 88]
然后调用func随机返回Int。
if seed.count > 0 {
let number = Utils.random(from: seed)
}
具有随机功能:
class Utils: NSObject {
class func random(from:[Int]) -> Int {
let inline = (0..<from.count)
var g = SystemRandomNumberGenerator()
let i = Int.random(in: inline, using: &g)
return from[i]
}
}
希望,我现在知道你!