【问题标题】:rand() doesn't seem to be so randomrand() 似乎没有那么随机
【发布时间】:2012-05-12 03:27:41
【问题描述】:

这是我创建 int 的方式:

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

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

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

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

【问题讨论】:

    标签: xcode ios4 xcode4 xcode4.2


    【解决方案1】:

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

    【讨论】:

    • 没关系,我猜这只是 arc4random() % 限制,谢谢,效果很好!
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      srand(time(NULL));
      

      会起作用

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-18
          • 2012-01-27
          • 2013-09-29
          • 1970-01-01
          • 2016-02-25
          • 2014-02-02
          • 2012-04-24
          • 1970-01-01
          相关资源
          最近更新 更多