Как заполнить вызов метода Int.random в Swift? - PullRequest
0 голосов
/ 03 марта 2019

Я сталкиваюсь с проблемой, когда у меня не получается тестовый случай в зависимости от случайного числа, получаемого при вызове метода Int.random (: in).

Я огляделся по сторонам и не могу найти хороший способ сделать тот же звонок, но не мог бы предоставить свой собственный источник генератору.

Кто-нибудь знает хороший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Я понимаю, что вам нужно случайное целое число из начального целого числа с SystemRandomNumberGenerator.

Семенами являются 11, 22, 33, 44, 55, 66, 77, 88 или другие.Вы реализуете:

let seed:[Int] = [11, 22, 33, 44, 55, 66, 77, 88]

, затем вызываете func random return 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]
    }
}

Надеюсь, я вас сейчас знаю!

0 голосов
/ 03 марта 2019

См. https://developer.apple.com/documentation/swift/systemrandomnumbergenerator

SystemRandomNumberGenerator засевается автоматически.Если вы хотите использовать свой собственный отобранный ГСЧ, вам придется реализовать его самостоятельно в соответствии с протоколом RandomNumberGenerator .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...