随机数函数rand()
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()相关推荐
- mysql 列 随机数_MySQL的指定范围随机数函数rand()的使用技巧
公式如下: rand() * (y-x) + x 咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数 ...
- C++产生随机数函数rand()
C++产生随机数函数rand() C++11之前没有random,生成随机数用rand(),可以配合srand()来使用.rand()不是真正的生成随机数,而是线性取余,有可能也会生成相同的数出来.生 ...
- sqlserⅴer随机函数_SQL server的随机数函数rand()详解
SQL server的随机数函数rand()详解 from:http://tieba.baidu.com/f?kz=607363268 在SQL Server中,有个随机函数rand(),有不少新手可 ...
- c mysql生成随机数函数,MySQL的指定范围随机数函数rand()的使用技巧
公式如下: rand() * (y-x) + x 咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数 ...
- MySQL集函数随机数_MySQL的指定范围随机数函数rand()的使用技巧
公式如下: rand() * (y-x) + x 咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数 ...
- php随机整数rand和mt_rand,PHP随机数函数rand()与mt_rand()的讲解
PHP随机数函数rand()与mt_rand()的讲解 PHP中rand()与mt_rand()都是用于产生一个指定范围内单独随机数的函数,如果需要产生多个不重复的随机数,请参考:PHP生成指定范围内 ...
- c++随机数函数rand()
c 语言rand()生成随机数 c语言中rand()函数生成随机数的用法: 详细介绍: (1)使用该函数首先应在开头包含头文件stdlib.h #include<stdlib.h>(C++ ...
- 【C语言】随机数函数rand和srand
文章目录 一.随机数函数 1.rand().srand() 2.time() 二.案例实现 1.案例描述 2.代码实现 一.随机数函数 1.rand().srand() C语言产生随机数要用到的函数是 ...
- C语言之随机数函数( rand() )的使用方法
文章出自个人博客https://knightyun.github.io/2018/04/25/c-rand-number,转载请申明. 在程序设计中,难免会使用到随机值函数,其原理与语法大多类似,接下 ...
- c语言如何初始化随机数种子,关于随机数函数rand和其种子初始化
原文链接 随机数.随机数种子 在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器. 有关如何产生随机数的理论有 ...
最新文章
- Linux使用lvresize扩展或缩减LV逻辑卷大小
- memoryerror: Unable to allocate array with shape (60000, 28, 28) and data ty
- edward_mj退役经验帖
- wamp惯用的php框架_wamp集成环境php多版本搭建(php5.5,php5.6,php7.0.6)
- python旋转排序数组_33.leetcode题目讲解(Python):搜索旋转排序数组
- mssql 存储过程 group by 集合并逗号要开某字段
- Flink on Zeppelin (3) - Streaming 篇
- DoIP(一)——基础概念
- CSS基础——看这一篇就够了
- 【冷冻电镜|论文阅读】A feature-guided, focused 3D signal permutation method for subtomogram averaging
- Vue首屏加载等待动画
- 2018中国计算机所有相关会议,2018年计算机视觉顶会和人工智能顶级会议时间表...
- C# 导出excel文件的6种办法
- 智慧医疗服务平台有哪些优势?
- 对口升学计算机学校录取分,中职对口升学本科第一批院校录取分数线划定
- 《诗经·甘棠》:两种相思一样情 转自国学
- 抖音一键批量下载无水印视频,这款软件帮助你
- Object Oriented Programming(1)
- mysql:Windows修改MySQL数据库密码
- mindjet mindManager 添加图像标签