欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

笔记:iOS随机数与随机数据集

程序员文章站 2022-05-25 19:36:10
arc4random 不需要初始种子(用 srand 或 srandom),使它更加容易使用。arc4random 范围可达 0x100000000 (4294967296),而 rand 和 random 的上限在 RAND_MAX = 0x7fffffff (2147483647)。rand 经 ......
//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 经常定期被周期低位的方式,使其更可预测执行。