在目标c中生成唯一的随机数?

use*_*195 2 iphone objective-c

我想生成一个介于31到60之间的随机数.

所以我使用了rand(),但我认为它会给出一些时间相同的价值.但我需要时间它应该给我新的价值.

我怎样才能做到这一点?

zap*_*aph 8

使用arc4random(),它将提供一个很好的随机数,不需要播种.

rand() 每次运行应用程序时都会生成相同的序列,除非您使用唯一值对其进行种子处理.

那么这是一个问题或减少范围.一个简单的解决方案是修改范围并添加范围的低端.(这会导致一个小的偏见,应该是可以接受的.)

例:

int rangeLow = 31;
int rangeHigh = 60;
int randomNumber = arc4random() % (rangeHigh-rangeLow+1) + rangeLow;
Run Code Online (Sandbox Code Playgroud)

如果您希望范围内的每个数字只出现一次,那么@ pawan.mangal会链接到一个好的解决方案.