我想生成一个31到60之间的随机数。
所以我用过rand(),但是我认为它将给一些时间相同的值。但是我需要极大的时间它应该给我新的价值。
我怎样才能做到这一点?
最佳答案
使用arc4random()
,它将提供一个很好的随机数,并且不需要种子。
每次运行该应用程序时,rand()
都会产生相同的序列,除非您使用唯一值将其作为种子。
那是要事还是要缩小范围。一个简单的解决方案是修改范围并添加范围的低端。 (这将导致较小的偏差,应该可以接受。)
例:
int rangeLow = 31;
int rangeHigh = 60;
int randomNumber = arc4random() % (rangeHigh-rangeLow+1) + rangeLow;
如果您希望范围内的每个数字仅出现一次,则@ pawan.mangal拥有指向一个好的解决方案的链接。
关于iphone - 在 objective-c 中生成唯一的随机数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8050681/