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

jar*_*ryd 3 random objective-c

我在Objective-C中看到了一些随机int的例子,但每次应用程序运行时,所有人都在抱怨相同的数字序列.我已经阅读了有关播种随机数的信息,但我不确定这甚至意味着什么.

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

是否可以将某些数据存储在NSUserDefaults中,然后根据这些数据生成不同的值?

Rob*_*ner 8

以下是Apple开发人员论坛的讨论.

使用arc4random()而不是random()或rand().它使用/ dev/urandom并生成更好的伪随机数.rand()和random()基本上都是坏的随机数生成器.

见:man arc4random

#include <stdlib.h>
picknumber = arc4random() % 3 + 1; 
Run Code Online (Sandbox Code Playgroud)


Mar*_*sen 5

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

srand([[NSDate date] timeIntervalSince1970]);
Run Code Online (Sandbox Code Playgroud)

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