获取一个随机整数范围在:[0,3)包括0,不包括3,iOS有三种实现随机数的方式:
方式一:
srand((unsigned)time(0)); //不加这句每次产生的随机数不变
int a = rand() % 3;
方式二:
srandom(time(0));
int b = random() % 3;
方式三:
int c = arc4random() % 3;
分析:
1、rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。
2、arc4random() 是一个真正的伪随机算法,不需要生成随机种子,第一次调用的时候就会自动生成。而且范围是rand()的两倍。
3、精确度比较:arc4random() > random() > rand()
综上:由于arc4random()范围更广,精确度更高。所以常用该方式实现随机数
实现获取一个随机整数,范围在[from,to),包括from,不包括to
-(int)getRandomNumber:(int)from to:(int)to
{
if (from < 0 || to < 0 || from >= to) {
return 0;
}
if (from == to+1) {
return from;
} else {
return (arc4random() % (to-from)) + from;
}
}