ios 随机数生成

字数612 阅读3037 评论1 喜欢15
  • 最近一直使用随机数,为了以后方便查阅,总结一下:

    • 在C中提供了rand()、srand()、random()、arc4random()几个函数。
使用 arc4random 生成随机数
  • 1.1 获取一个随机整数范围在:[0,100)包括0,不包括100

    int x = arc4random() % 100;
  • 1.2 获取一个随机数范围在:[100,200],包括100,包括200
    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随机数的更多相关文章

  1. iOS随机数-备

    ios 有如下三种随机数方法: 1.    srand((unsigned)time(0));  //不加这句每次产生的随机数不变        int i = rand() % 5; 2.    s ...

  2. iOS 随机数(Fixed)

    ios 有如下三种随机数方法: 1.    srand((unsigned)time(0));  //不加这句每次产生的随机数不变         int i = rand() % 5; 2.     ...

  3. ios随机数不重复

     NSMutableArray* Valuearr=[NSMutableArray new];     int counN=9;    for(int i=0;i<counN;i++)  //创 ...

  4. iOS 随机数获取

    //获取一个32位随机数 static const char _randomStr[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv ...

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

    //0 到 N - 1 之间的随机整数 NSUInteger r = arc4random_uniform(N); //1 到 N 之间的随机整数 NSUInteger r = arc4random_ ...

  6. iOS——浅谈iOS中三种生成随机数方法

    ios 有如下三种随机数方法:

  7. iOS中产生随机数的方法

    利用arc4random_uniform()产生随机数 Objective-C 中有个arc4random()函数用来生成随机数且不需要种子,但是这个函数生成的随机数范围比较大,需要用取模的算法对随机 ...

  8. iOS中 三种随机数方法详解

    ios 有如下三种随机数方法: //第一种 srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; //第二种 srandom(t ...

  9. ios 中生成随机数

    ios 有如下三种随机数方法: 1.    srand((unsigned)time(0));  //不加这句每次产生的随机数不变        int i = rand() % 5; 2.    s ...

随机推荐

  1. Java版冒泡排序和选择排序

    一.理解说明 1.理解和记忆 冒泡排序:依次定位数组元素,每次只和相邻的且符合条件的元素交换位置. 选择排序:依次在数组的每个位置,通过逐个对比选择出最大或最小的元素. 2.知识点说明 (1)数组是引 ...

  2. 使用Image.GetThumbnailImage 方法返回缩略图

    如果 Image 包含一个嵌入式缩略图像,则此方法会检索嵌入式缩略图,并将其缩放为所需大小. 如果 Image 不包含嵌入式缩略图像,此方法会通过缩放主图像创建一个缩略图像. 请求的缩略图像大小为 1 ...

  3. 从补丁到POC CVE-2015-0003(2015.3)

    从补丁到POC CVE-2015-0003 1. 简介 该漏洞是由于Windows的win32k.sys模块存在对用户层参数验证不完全,导致存在空指针解引用(Null Pointer Derefere ...

  4. HTML canvas图像裁剪

    canvas drawImage方法的图像裁剪理解可能会比较耗时,记录一下,以便供人翻阅! context.drawImage(img,sx,sy,swidth,sheight,x,y,width,h ...

  5. 显示ubuntu 10.4右上角网络图标

    在面板右击“添加到面板”,选择“通知区域”

  6. 郑州尚学堂:如何在Java中创建对象

    作为Java开发者,每天都会创建大量的对象,但是,我们总是使用管理依赖系统(如Spring框架)来创建这些对象.其实还有其他方法可以创建对象,在接下来的文章中我会进行详细介绍. 1.使用new关键字 ...

  7. Eight

    Eight 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043/http://acm.split.hdu.edu.cn/showproblem.ph ...

  8. 弹性布局EM的计算方法

    文章来源: http://www.w3cplus.com/css/px-to-em 总结: 1.浏览器默认的字体大小为16PX,即1em 2.EM可以指定小数点的后三位 3.元素自身没有设置字体大小, ...

  9. PAT 团体程序设计天梯赛-练习集 L1-019. 谁先倒

    给出甲.乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒. 输入格式: 输入第一行先后给出甲.乙两人的酒量(不超过100的非负整数),以空格分隔.下一行给出一个正整数N(<=1 ...

  10. screen 对象当当获取屏幕而已 innethtml可以知道调整屏幕宽度

    <div id='lidepeng' style="height: 100px;width: 100px;"></div><script type=& ...