arc4random() 比较精确不需要生成随即种子(推荐)
使用方法 :
1>生成随机正整数
int value = arc4random()
2>通过arc4random() 获取0到x-1之间的整数的代码如下:
int value = arc4random() % x;
3>
获取1到x之间的整数的代码如下:
int value = (arc4random() % x) + 1;
4>
生成0-x之间的随机正整数,不需要再进行取模运算。
int value =arc4random_uniform(x + 1);
5>最后如果想生成一个浮点数,可以在项目中定义如下宏:
#define ARC4RANDOM_MAX 0x100000000
然后就可以使用arc4random() 来获取0到100之间浮点数了(精度是rand()的两倍),
代码如下:
double val = floorf(((double)arc4random() / ARC4RANDOM_MAX) * 100.0f);
实例:
-(float)randomFloatBetween:(float)num1 andLargerFloat:(float)num2
{
int startVal = num1*10000;
int endVal = num2*10000;
int randomValue = startVal +(arc4random()%(endVal - startVal));
float a = randomValue;
return(a /10000.0);
}
6.获取一个随机整数,范围在[from,to],包括from,包括to
-(int)getRandomNumber:(int)from to:(int)to{
return (int)(from + (arc4random()%(to-from+1)));
}