OC获取指定范围内随机数

获取一个随机整数范围在:[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;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容