筆記:iOS隨機數與隨機數據集


//0 到 N - 1 之間的隨機整數
NSUInteger r = arc4random_uniform(N);

//1 到 N 之間的隨機整數
NSUInteger r = arc4random_uniform(N) + 1;

//0 到 1 之間的隨機浮點數(double)
 srand48(time(0));
double r = drand48(); 

//NSArray 選擇一個隨機元素
if ([array count] > 0) {
  id obj = array[arc4random_uniform([array count])];
}

//隨機排序一個 NSArray
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))];
  }
}
NSArray *randomArray = [NSArray arrayWithArray:mutableArray];

//生成一個隨機的小寫 NSString
 NSString *letter = [NSString stringWithFormat:@"%c", arc4random_uniform(26) + 'a'];

//從一個 NSString 選擇一個隨機字符
NSString *vowels = @"aeiouy";
NSString *letter = [vowels substringWithRange:NSMakeRange(arc4random_uniform([vowels length]), 1)];
arc4random 不需要初始種子(用 srand 或 srandom),使它更加容易使用。
arc4random 范圍可達 0x100000000 (4294967296),而 rand 和 random 的上限在 RAND_MAX = 0x7fffffff (2147483647)。
rand 經常定期被周期低位的方式,使其更可預測執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM