为什么drand48()在我的程序中的每次运行中显示相同的值?

scb*_*000 -1 random swift swift2

我尝试使用drand48()创建一个随机获取值的变量, 但在每次运行中,我的变量采用相同的值.任何人都可以帮助我,(我想在每次运行中我的变量取不同的价值)???

let number = drand48 ()
Run Code Online (Sandbox Code Playgroud)

Oli*_*son 9

drand48创建一个伪随机数序列.也就是说,如果每次始终产生相同的数字,它就不会设置为不同的起始点.

要事先修复此调用srand48,为drand48设置一个新的起点

例如

let time = UInt32(NSDate().timeIntervalSinceReferenceDate)
srand48(Int(time))
let number = drand48 ()
Run Code Online (Sandbox Code Playgroud)

以下是drand48和srand48的文档

编辑:种子的不同方式,以避免错误,我不是通过计算机(在我的手机上)所以可能必须稍后修复它,如果它不起作用

  • 或者`srand48(Int(time(nil)))`. (2认同)