关于C#:如何在iOS上生成随机数?

How do I generate random numbers on iOS?

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


StackOverflow上有一个非常类似的问题。以下是一个更好的解决方案(无需播种):

1
int r = arc4random() % 5;


我用

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

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


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

1
srand(time(0));

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


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


用于随机数生成的简单函数:

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