ios 随机数生成

作者: iOS_成才录 | 来源:发表于2015-11-13 17:06 被阅读39623次
  • 最近一直使用随机数,为了以后方便查阅,总结一下:
    • 在C中提供了rand()、srand()、random()、arc4random()几个函数。
使用 arc4random 生成随机数
  • 1.1 获取一个随机整数范围在:[0,100)包括0,不包括100

int x = arc4random() % 100;

+ 1.2 获取一个随机数范围在:[100,200],包括100,包括200
```objc
int y =100 +  (arc4random() % 101);
  • 1.3抽取方法
    • 获取一个随机整数,范围在[from,to],包括from,包括to
 -(int)getRandomNumber:(int)from to:(int)to
{
   return (int)(from + (arc4random() % (to – from + 1)));
}

使用 rand() 生成随机数

  • 注意:
    • 在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。
    • rand()函数没有输入参数,直接通过表达式rand()来引用;

printf("Random numbers are: %i %i\n",rand(),rand());
```

  • 伪随机数:
    • 因为rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数
  • 为了使程序在每次执行时都能生成一个新序列的随机值,
    • 我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。
    • srand()称为随机数生成器的初始化器。
  • 用rand()随机生成在[x,y]内的整数
/*k即为所求范围内随机生成的数,rand()%a的结果最大为a-1*/
int k= x+rand()%(y-x+1)

比较

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

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

  • 精确度比较:arc4random() > random() > rand()。

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

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

// 3. arc4random() 
int i = arc4random() % 100 ;

相关文章

  • iOS随机数的几种生成方式

    iOS 有如下几种随机数生成方法: rand() random() arc4random() arc4random...

  • 在以太坊生成随机数的几种方式(含代码)

    一、什么是随机数 随机数都是由随机数生成器(Random Number Generator)生成的。随机数分为”真...

  • 生成随机数

    两个C函数 rand()函数生成的随机数是伪随机数,所谓伪随机数,指的是程序每次运行,生成的随机数都是不变的,生成...

  • iOS 生成随机数

    获取一个随机整数,范围在[from,to],包括from,包括to

  • iOS 生成随机数

    Objective-c中并没有提供生成随机数的函数,所以使用C中提供的rand()、srand()、random(...

  • iOS生成随机数

    Objective-C语言中生成随机数的函数 arc4random()函数arc4random()函数用来生成随机...

  • ios 随机数生成

    最近一直使用随机数,为了以后方便查阅,总结一下:在C中提供了rand()、srand()、random()、arc...

  • Golang生成随机数的方法总结

    生成区间随机数 生成指定区间随机数(包括纯数字/纯字母/随机)

  • PHP生成随机数

    PHP生成随机数,相信大家在做项目的时候是最常见的吧。js生成随机数,PHP生成随机数。 应用场景:用户注册/登录...

  • Excel怎么生成随机数?

    Excel怎么生成随机数?如何生成指定范围内的随机数呢?可以在Excel中使用函数,生成随机数。 1、在单元格中输...

网友评论

  • 5f3040a1cc26:你好,请问你的能成功获取token吗?我这边一直说签名无效
  • TyroneTang:为什么我在xcode8.3里面用rand() 每次打印的都不一样呢
    iDog:每次都重新编译 你就会发现打印的都是一样的
  • 睿少:如果想随机生成小数怎么弄?
    睿少:@叫我马小帅 恩恩,我就是这样做的:smile:
    叫我马小帅:拼接字符串是可以的。你可以一次性随机2个整整数,第二个整数当作小数点/斜眼笑
    asaBoat:@睿少 /

本文标题:ios 随机数生成

本文链接:https://www.haomeiwen.com/subject/czxkhttx.html