English 中文(简体)
我该如何在iOS上生成随机数?
原标题:
  • 时间:2009-02-04 07:12:12
  •  标签:

What is the best way to generate random numbers using Objective-C on iOS?
If I use (int)((double) rand() / ((double)(RAND_MAX) + (double) 1) * 5.0) to generate a number from 0 to 4, every time I start the program on the iPhone it generates the same numbers to start off with.

最佳回答

这里有一个非常相似的问题StackOverFlow上的问题。这里是其中一个更好的解决方案(无需种子):

int r = arc4random() % 5;
问题回答

我使用

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

因此,您可以提供最小值和最大值。

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

srand(time(0));

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

在程序开头调用srand()函数,它将重新生成随机数生成器的种子。

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

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




相关问题
热门标签