1,使用前提

rand()和srand()要一起使用,其中srand()用来初始化随机数种子,rand()用来产生随机数。

因为默认情况下随机数种子为1,而相同的随机数种子产生的随机数是一样的,失去了随机性的意义,所以为使每次得到的随机数不一样,用函数srand()初始化随机数种子。srand()的参数,用time函数值(即当前时间),因为两次调用rand()函数的时间通常是不同的,这样就可以保证随机性了。
2,随机数产生的范围

要取得[a,b)的随机整数,使用(rand() % (b-a))+ a (结果值含a不含b)。
要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a (结果值含a和b)。
要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1 (结果值不含a含b)。

(总的来说,通用公式:a + rand() % n ;其中的a是起始值,n是整数的范围)

要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。

要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。
3,原理

rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系列数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统。 
⚠️:为得到不同的随机数序列,则需改变这个种子的值。方法:在开始产生随机数前,调用一次srand(time(NULL))。

⚠️:srand()一定要放在循环外面或者是循环调用的外面,否则的话得到的是相同的随机数。

4,实战

#include <iostream>
#include <sys/time.h>using namespace std;#define range_Max_Num 100 //定义范围上界
#define range_Min_Num 70  //定义范围下界int main()
{struct timeval tv;gettimeofday(&tv,NULL);//获得当前时间srand(tv.tv_usec);//以微秒为种子int x = rand() % (range_Max_Num - range_Min_Num + 1) + range_Min_Num;cout<< x <<endl;return 0;
}

随机数函数rand()相关推荐

  1. mysql 列 随机数_MySQL的指定范围随机数函数rand()的使用技巧

    公式如下: rand() * (y-x) + x 咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数 ...

  2. C++产生随机数函数rand()

    C++产生随机数函数rand() C++11之前没有random,生成随机数用rand(),可以配合srand()来使用.rand()不是真正的生成随机数,而是线性取余,有可能也会生成相同的数出来.生 ...

  3. sqlserⅴer随机函数_SQL server的随机数函数rand()详解

    SQL server的随机数函数rand()详解 from:http://tieba.baidu.com/f?kz=607363268 在SQL Server中,有个随机函数rand(),有不少新手可 ...

  4. c mysql生成随机数函数,MySQL的指定范围随机数函数rand()的使用技巧

    公式如下: rand() * (y-x) + x 咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数 ...

  5. MySQL集函数随机数_MySQL的指定范围随机数函数rand()的使用技巧

    公式如下: rand() * (y-x) + x 咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数 ...

  6. php随机整数rand和mt_rand,PHP随机数函数rand()与mt_rand()的讲解

    PHP随机数函数rand()与mt_rand()的讲解 PHP中rand()与mt_rand()都是用于产生一个指定范围内单独随机数的函数,如果需要产生多个不重复的随机数,请参考:PHP生成指定范围内 ...

  7. c++随机数函数rand()

    c 语言rand()生成随机数 c语言中rand()函数生成随机数的用法: 详细介绍: (1)使用该函数首先应在开头包含头文件stdlib.h #include<stdlib.h>(C++ ...

  8. 【C语言】随机数函数rand和srand

    文章目录 一.随机数函数 1.rand().srand() 2.time() 二.案例实现 1.案例描述 2.代码实现 一.随机数函数 1.rand().srand() C语言产生随机数要用到的函数是 ...

  9. C语言之随机数函数( rand() )的使用方法

    文章出自个人博客https://knightyun.github.io/2018/04/25/c-rand-number,转载请申明. 在程序设计中,难免会使用到随机值函数,其原理与语法大多类似,接下 ...

  10. c语言如何初始化随机数种子,关于随机数函数rand和其种子初始化

    原文链接 随机数.随机数种子 在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器. 有关如何产生随机数的理论有 ...

最新文章

  1. Linux使用lvresize扩展或缩减LV逻辑卷大小
  2. memoryerror: Unable to allocate array with shape (60000, 28, 28) and data ty
  3. edward_mj退役经验帖
  4. wamp惯用的php框架_wamp集成环境php多版本搭建(php5.5,php5.6,php7.0.6)
  5. python旋转排序数组_33.leetcode题目讲解(Python):搜索旋转排序数组
  6. mssql 存储过程 group by 集合并逗号要开某字段
  7. Flink on Zeppelin (3) - Streaming 篇
  8. DoIP(一)——基础概念
  9. CSS基础——看这一篇就够了
  10. 【冷冻电镜|论文阅读】A feature-guided, focused 3D signal permutation method for subtomogram averaging
  11. Vue首屏加载等待动画
  12. 2018中国计算机所有相关会议,2018年计算机视觉顶会和人工智能顶级会议时间表...
  13. C# 导出excel文件的6种办法
  14. 智慧医疗服务平台有哪些优势?
  15. 对口升学计算机学校录取分,中职对口升学本科第一批院校录取分数线划定
  16. 《诗经·甘棠》:两种相思一样情 转自国学
  17. 抖音一键批量下载无水印视频,这款软件帮助你
  18. Object Oriented Programming(1)
  19. mysql:Windows修改MySQL数据库密码
  20. mindjet mindManager 添加图像标签

热门文章

  1. Ambari-2.7.5.0 + HDP-3.1.5.0网盘地址
  2. java中outer的用法
  3. 分享两个解决Mac 访问Github的好方法
  4. YOLOv3目标检测算法——通俗易懂的解析
  5. Principles of fMRI 1课程笔记7--fMRI数据的时间分辨率和空间分辨率
  6. AI初学者必看的4个顶级人工智能领域岗位
  7. 性能测试测试方案总结
  8. 动态规划(DP)算法介绍
  9. Flutter组件学习(13)层叠布局Stack、Positioned
  10. JS_强制类型转换_Number