
C语言随机函数rand() random() drand48()
OC随机函数arc4random() arc4random_uniform()
1 2 3 4 5 6 7 8 9
|
-(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()
1 2 3 4 5 6 7 8 9
|
-(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()
1 2 3 4 5 6 7 8 9
|
-(double)drand0To1{ static BOOL isSranded = NO; if (!isSranded) { isSranded = YES; srand48(time(0)); } return drand48(); }
|
arc4random()
1 2 3 4
|
-(int)arc4randomFrom:(int)m to:(int)n{ return m + arc4random()%(n - m + 1); }
|
1 2 3 4 5 6 7 8 9
|
// 生成0~N之间的随机整数 -(NSInteger)randomN:(int)n{ return arc4random_uniform(n+1); }
// 生成1~N之间的随机整数 -(NSInteger)random1ToN:(int)n{ return arc4random_uniform(n) + 1; }
|
实例应用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
-(id)randomArrayObject:(NSArray *)array{ if ([array isKindOfClass:[NSArray class]] && [array count] > 0) { return array[arc4random_uniform((int)array.count)]; } return nil; }
-(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]; }
|
近期评论