代码之家  ›  专栏  ›  技术社区  ›  some_id

如何在Objective-C中种子随机生成器并创建一个随机int

  •  3
  • some_id  · 技术社区  · 15 年前

    我在Objective-C中看到了一些随机int的例子,但是所有人都抱怨每次运行应用程序时都有相同的数字序列。我读过关于播种随机数的文章,但我不知道这意味着什么。

    即使在应用程序重新启动之后,每次都可以生成不同的随机数吗?

    是否可以将一些数据存储在nsuser默认值中,然后根据该默认值生成不同的值?

    3 回复  |  直到 10 年前
        1
  •  8
  •   Robert Greiner    15 年前

    这里有一个 discussion on the Apple developer forums .

    使用arc4random()而不是 Random()或Rand()。它使用 /开发/开发并产生更好的结果 伪随机数。RAND()和 random()基本上是坏的random 数字生成器。

    参见:MAN ARC4随机

    #include <stdlib.h>
    picknumber = arc4random() % 3 + 1; 
    
        2
  •  5
  •   Martin Ingvar Kofoed Jensen    15 年前

    您可以使用以下代码为随机数种子:

    srand([[NSDate date] timeIntervalSince1970]);
    

    每次都会给你一个新的随机序列。

        3
  •  1
  •   pgb    15 年前

    我一直在使用 arc4random 你不需要播种。你可以试试。