3

这是我创建int的方式:

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

但是,每次我启动应用程序时,数字都是一样的,无论如何。

我创建了一个按钮并向其附加了一个重新初始化随机数并将新数字记录下来的操作,然后它生成一个随机数,但是在应用程序启动时随机数总是相同的(我已经启动了 20次)。

知道为什么在应用程序启动时随机数总是相同的吗?

4

4 回答 4

13

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

于 2012-05-12T03:33:16.507 回答
3

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

看看这个以获得一些指导:Generating random numbers in Objective-C

于 2012-05-12T03:28:55.930 回答
1

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

如果您在程序开始时执行此操作

srand(time(NULL));

将起作用

于 2012-05-12T03:33:37.100 回答
0

你必须调用 srand(unsigned int seed); 播种 rand 函数。如果您不调用 srand ,它将每次播种 1 。

于 2012-05-12T03:33:28.053 回答