什么是好的随机函数,每次启动时都会有所不同

时间:2012-01-11 20:06:52

标签: objective-c cocoa-touch

我正在使用rand()函数,但它总是使用相同的随机序列。是否有随机函数种子的时钟值?我该怎么做?

2 个答案:

答案 0 :(得分:1)

rand()要求您指定种子。指定种子的最佳方法是使用当前时间。

// specify the seed
srand(time(NULL));

或者您可以使用arc4random

答案 1 :(得分:0)

在使用它们之前,您的意图是使用它们各自的种子功能自己播种rand()random()(略大的空间)。您可以使用时间或您想要的任何其他值:

srand(time(0));
srandom(time(0));

这里我们得到系统时间;很明显,每次运行都会产生相同的序列。

你也可以使用arc4random()使用/ dev / random生成非常高质量的随机位和种子本身。