如何在iOS上生成随机数?

时间:2009-02-04 07:12:13

标签: ios objective-c random

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

6 个答案:

答案 0 :(得分:71)

有一个非常相似的问题here on StackOverFlow。这是一个更好的解决方案(不需要播种):

int r = arc4random() % 5;

答案 1 :(得分:15)

我用

#define RANDOM_SEED() srandom(time(NULL))
#define RANDOM_INT(__MIN__, __MAX__) ((__MIN__) + random() % ((__MAX__+1) - (__MIN__)))

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

答案 2 :(得分:10)

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

srand(time(0));

答案 3 :(得分:6)

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

答案 4 :(得分:3)

在程序开始时调用srand(),它将重置随机数生成器

答案 5 :(得分:2)

随机数生成的简单函数:

int r = arc4random() % 42;  // generate number up to 42 (limit)