我喜欢新的Swift 4.2 RandomNumberGenerator,但我没有看到种子的可能性。我是遗漏了什么,还是有任何方法可以为这些生成器提供种子,通过调用底层低级函数?我有很多代码使用默认数字类型上的默认数字生成器,现在我需要确保每次启动时一切都完全相同,并尽可能少地更改代码。
如果您想通过显式种子实现重现性,可以使用Mersenne Twister的GameplayKit
实现:
import Cocoa
import GameplayKit
let mt = GKMersenneTwisterRandomSource.init(seed: 12345)
for _ in (1...5) {
print(mt.nextUniform())
}