# iOS-关于随机数总结

2017-01-14 10:23:40来源:http://www.jianshu.com/p/b49735dd907e作者:cdcyd人点击

C语言随机函数rand() random() drand48()
OC随机函数arc4random() arc4random_uniform()

rand()
``// 生成m~n之间的随机整数-(int)randFrom:(int)m to:(int)n{    static BOOL isSranded = NO;    if (!isSranded) {        isSranded = YES;        srand((int)time(0));    }    return m + rand()%(n - m + 1);}``

random()
``// 生成m~n之间的随机整数-(int)randomFrom:(int)m to:(int)n{    static BOOL isSranded = NO;    if (!isSranded) {        isSranded = YES;        srandom((int)time(0));    }    return m + random()%(n - m + 1);}``

drand48()
``// 生成0~1之间的随机浮点数-(double)drand0To1{    static BOOL isSranded = NO;    if (!isSranded) {        isSranded = YES;        srand48(time(0));    }    return drand48();}``

arc4random()
``// 生成m~n之间的随机整数-(int)arc4randomFrom:(int)m to:(int)n{    return m + arc4random()%(n - m + 1);}``

rac4random_uniform(int upper_bound)
``// 生成0~N之间的随机整数-(NSInteger)randomN:(int)n{    return arc4random_uniform(n+1);}// 生成1~N之间的随机整数-(NSInteger)random1ToN:(int)n{    return arc4random_uniform(n) + 1;}``

``// 获取数组中随机的一个元素-(id)randomArrayObject:(NSArray *)array{    if ([array isKindOfClass:[NSArray class]] && [array count] > 0) {        return array[arc4random_uniform((int)array.count)];    }    return nil;}// 获取1~100之间的不重复的长度是10的随机整数数组-(NSArray *)getRandomArray  {      NSMutableArray *seedsArray=[NSMutableArray array];    for (int i = 0 ; i < 100; i++) {        [seedsArray addObject:@(i+1)];    }    NSMutableArray *resultArray=[NSMutableArray array];      NSInteger n = 10;      for (int i = 0; i < n; i++) {          int m = arc4random_uniform((int)seedsArray.count);          [resultArray addObject:seedsArray[m]];          [seedsArray removeObjectAtIndex:m];      }      return resultArray;  }// 随机排序数组-(NSArray *)randomSortArray:(NSArray *)array{    NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:array];    NSUInteger count = [mutableArray count];    if (count > 1) {        for (NSUInteger i = count - 1; i > 0; --i) {            [mutableArray exchangeObjectAtIndex:i withObjectAtIndex:arc4random_uniform((int32_t)(i + 1))];        }    }    return [NSArray arrayWithArray:mutableArray];}``

Demo地址:https://github.com/cdcyd/CCRand