如何在iOS上生成随机数?

use*_*293 22 random objective-c ios

在iOS上使用Objective-C生成随机数的最佳方法是什么?
如果我(int)((double) rand() / ((double)(RAND_MAX) + (double) 1) * 5.0)用来生成0到4之间的数字,那么每次我在iPhone上启动程序时,它都会生成相同的数字.

new*_*ple 71

StackOverFlow上有一个非常类似的问题.这是一个更好的解决方案(不需要播种):

int r = arc4random() % 5;
Run Code Online (Sandbox Code Playgroud)

  • 5如果他们想从0到4 (11认同)
  • arc4random_uniform是比%5更好的选择 (4认同)

And*_*obs 15

我用

#define RANDOM_SEED() srandom(time(NULL))
#define RANDOM_INT(__MIN__, __MAX__) ((__MIN__) + random() % ((__MAX__+1) - (__MIN__)))
Run Code Online (Sandbox Code Playgroud)

所以你可以给出最小值和最大值


Niy*_*yaz 10

您应该使用当前时间为随机数生成器播种.

srand(time(0));
Run Code Online (Sandbox Code Playgroud)


小智 6

你需要多随机?如果你想要足够随机加密,那么使用SecRandomCopyBytes().