iOS--随机数rand、random、arc4random

iOS 有如下三种随机数方法:

  1. srand((unsigned)time(0)); //不加这句每次产生的随机数不变
    int i = rand() % 5;

  2. srandom(time(0));
    int i = random() % 5;

  3. int i = arc4random() % 5 ;

注:rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。

arc4random() 是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296)。

精确度比较arc4random() > random() > rand()

常用方法:arc4random

1、获取一个随机整数范围在:[0,100)包括0,不包括100

int x = arc4random() % 100;

2、 获取一个随机数范围在:[500,1000),包括500,不包括1000

int y = (arc4random() % 501) + 500;

3、获取一个随机整数,范围在[from,to),包括from,不包括to

-(int)getRandomNumber:(int)from to:(int)to

{

    return (int)(from + (arc4random() % (to – from + 1))); //+1,result is [from to]; else is [from, to)!!!!!!!

}

转载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1)) 例: (int)(1+Math...
    GB_speak阅读 41,259评论 2 6
  • 在C中提供了rand()、srand()、random()、arc4random()几个函数来获取随机数。 使用 ...
    Mark_Ming阅读 2,061评论 2 12
  • 最近一直使用随机数,为了以后方便查阅,总结一下:在C中提供了rand()、srand()、random()、arc...
    iOS_成才录阅读 91,843评论 8 43
  • Objective-c中并没有提供生成随机数的函数,所以使用C中提供的rand()、srand()、random(...
    何以_aaa阅读 18,360评论 0 8
  • UltraMon——双屏显示器利器双屏不同任务栏\不同壁纸\多窗口扩展独占,不是单纯的windows manage...
    vimtest阅读 517评论 0 1