2011-05-06 49 views

回答

4

在iOS和OS X上,改为使用arc4random。质量随机性更高,无需担心播种。

但是,rand()不应该是周期性的,除非您每次打电话srand。或者错误地使用随机数字。

+0

arc4random()使用/ dev/random作为源。 – JustSid 2011-05-06 14:33:26

+0

是的。我每次都打电话给srand()。 =(我认为它可以解决rand()的问题 – Riddick 2011-05-06 14:35:38

+1

@JustSid:arc4random对* seed *使用'/ dev/urandom'(而不是'/ dev/random'),当你手动调用arc4random_stir时。 – Anomie 2011-05-06 14:37:41

3

你可以试试random()/ srandom()来代替。比rand()/ srand()更好的发生器。

0

你是为了调试还是在模拟器上构建?我知道我在调试时构建了一些Windows应用程序时遇到了这种问题, RNG自动采用恒定值进行播种,以产生一致的结果。您可能想要检查实际播种的内容,以及每次运行时是否获得不同的输出。