使用arc4random()在两个整数之间生成随机数

时间:2014-04-13 17:36:21

标签: ios objective-c math random

我有一个NSArray,.count我存储在一个名为arrayCount

的整数中

我需要生成一个从0到arrayCount的随机数,但是当我使用arc4random()时,它会生成一个非常大的整数。

我一直这样做:int randomInt = arc4random()*arrayCount;

其中一直在给我随机数字,如12309120等。

3 个答案:

答案 0 :(得分:5)

改为使用arc4random_uniform,它专门用于生成[0,n]范围内的数字(如数组索引)。它比简单的arc4random() % n更好,因为它避免了模运算符引入的偏差。

您可以将其用作arc4random_uniform(arrayCount)

答案 1 :(得分:1)

尝试

int randomInt = arc4random() % arrayCount;

答案 2 :(得分:1)

你只需要做模数

int randomInt = arc4random() % arrayCount;

如果您愿意,这将为您提供(包括)0arrayCount-1[0, arrayCount)之间的值