我有一个NSArray,.count
我存储在一个名为arrayCount
我需要生成一个从0到arrayCount
的随机数,但是当我使用arc4random()时,它会生成一个非常大的整数。
我一直这样做:int randomInt = arc4random()*arrayCount;
其中一直在给我随机数字,如12309120等。
答案 0 :(得分:5)
改为使用arc4random_uniform
,它专门用于生成[0,n]范围内的数字(如数组索引)。它比简单的arc4random() % n
更好,因为它避免了模运算符引入的偏差。
您可以将其用作arc4random_uniform(arrayCount)
。
答案 1 :(得分:1)
尝试
int randomInt = arc4random() % arrayCount;
答案 2 :(得分:1)
你只需要做模数
int randomInt = arc4random() % arrayCount;
如果您愿意,这将为您提供(包括)0
和arrayCount-1
或[0, arrayCount)
之间的值