rand()似乎不是那么随意

时间:2012-05-12 03:27:42

标签: xcode ios4 xcode4 xcode4.2

以下是我如何创建int:

int randNumber = rand() % 4;
NSLog(@"%d", randNumber);

然而,每次启动应用程序时,无论如何,数字都是相同的。

我创建了一个按钮,并附加了一个操作,重新初始化随机数并记录新号码,然后生成一个随机数,但在App启动时,随机数总是相同的(我发布了)它超过20次)。

任何想法为什么在应用程序启动时随机数总是一样的?

4 个答案:

答案 0 :(得分:13)

尝试使用不需要种子的arc4random()

答案 1 :(得分:3)

每次运行程序时都需要指定不同的种子。给定种子,随机数生成器生成一组数字。相同的种子将产生相同的数字集。要获得不同的集合,您需要一个不同的种子。

请看一下这方面的指导:Generating random numbers in Objective-C

答案 2 :(得分:1)

rand()是一个伪随机数生成器。它使用种子并为每个种子生成确切的序列。

如果你在程序开始时这样做

srand(time(NULL));

将起作用

答案 3 :(得分:0)

你必须调用srand(unsigned int seed);种子兰特功能。如果你不打电话,每次都会播种1。