rand()和srand()
前提概要
rand()用于生成随机数,但不是生成真正的随机数
srand()用于设置供rand()使用的随机数种子
提示
第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand(),自动调用传参值为1
使用相同种子(srand函数传参值相同),调用 rand()生成的是相同随机数序列
函数原型
int rand(void);
void srand(unsigned seed);
参数说明
seed:srand()的种子,用于初始化srand()的起始值
引入问题
问题描述:srand函数传参固定会导致生成的随机数是相同随机数序列
解决办法:通常用srand((unsigned)time(0))或srand((unsigned)time(NULL))来产生种子
提示
如果觉得时间间隔太小,可在(unsigned)time(0)或(unsigned)time(NULL)后面乘上合适整数
例:srand((unsigned)time(NULL)*10)
time_t time(0)
time_t:是重命名的长整型
函数返回值:从1970年1月1日零时零分零秒到目前为止所经过的时间,单位为秒
参考例程
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
int
main(int argc,char **argv){
int
i,j;
srand
((
int
)
time
(0));// 这里传参不固定即可实现产生不同的随机数序列
for
(i=0;i<10;i++)
{
j=1+(
int
)(10.0*
rand
()/(RAND_MAX+1.0));
printf
(
"%d"
,j);
}
}
总结
srand()函数传参值,对应一个固定的随机数序列,通过改变srand的传参值实现产生不同随机数序列
例
srand(1) 对应一个固定随机数序列,srand(2)对应另外一个随机数序列
rand()和srand()相关推荐
- 【C++】random随机数与【C++11】/rand()和srand()的用法
文章目录 随机数 1. c++ 11 random随机数的使用(推荐使用) 1.1 1.2 1.3 1.4 2.1 C++中随机函数rand()和srand()的用法(老本版) 2.2 限制随机数的范 ...
- rand()和srand()关系很简单——一看就明白(通过一个可移植的源码)
1 函数rand和srand实现及描述 #include <stdlib.h> //供rand()使用的种子数,初值为1 unsigned long int next = 1; /* * ...
- rand和srand
rand()和srand()函数我们应该接触的比较多了,之前就遇到过,弄懂了,但是现在又忘了.再次遇见写篇文章记录一下. srand()用来设定一个随机数种子,其参数必须是整数,不同的随机数种子使ra ...
- C++中随机函数rand()和srand()的用法
一.rand() 函数名: rand 功 能: 随机数发生器 用 法: int rand(void); 所在头文件: stdlib.h 函数说明 : rand()的 ...
- C语言之rand()和srand()函数
1.rand().srand()函数介绍 srand 初始化随机种子,rand 产生随机数 定义函数:int rand(void) 函数功能:产生随机数 函数说明:rand的内部实现是用线性同余法做的 ...
- C语言随机数:rand()和srand(time(NULL))的使用
C语言随机数 rand()简介 srand()简介 使用 rand()简介 使用该函数首先应在开头包含头文件<stdlib.h> #include<stdlib.h> //(C ...
- 【C语言】随机数函数rand和srand
文章目录 一.随机数函数 1.rand().srand() 2.time() 二.案例实现 1.案例描述 2.代码实现 一.随机数函数 1.rand().srand() C语言产生随机数要用到的函数是 ...
- rand和srand的用法(转载)
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明. rand(产生随机数) 表头文件: #include<stdlib.h&g ...
- rand()和srand()函数的用法
一.rand() rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的. rand()会返回一个范围在0到RAN ...
- C 语言 rand() 和 srand() 使用方法
前言 有时我们想用 rand() 生成一组随机数,虽然我们调用了 srand(),但是生成的还是相同值.为什么会产生这种情况?又该如何解决?下面将用第一视角一起探究这其中的奥秘. 问题出现 场景描述: ...
最新文章
- SET ROWCOUNT
- 有人质疑面向对象编程?
- Entity相互关系
- TCP三次握手和四次挥手图示
- ecshop 首页添加某个分类下面的商品
- Qt / QMainWindow、QDialog、QWidget
- SSM整合项目中使用百度Ueditor遇到的问题。
- mysql命令行如何建库_MySQL心得2--命令行方式建库和表
- 远程连接本地mongodb 数据库
- spring boot整合shiro继承redis_Springboot+Shiro+redis整合
- bzoj3214 [Zjoi2013]丽洁体 dp
- iOS开发常用技能点(持续更新中。。。)
- Java编程思想1-对象导论
- 新安装IAR打开现有工程
- 关于ESAPI无法打印debug级别日志
- 计算机二进制计算过程
- windows MSOCache删除
- 在Linux系统下安装更换操作系统
- 角色攻击、角色特殊动作
- Synchronized锁升级:无锁-> 偏向锁 -> 轻量级锁 -> 重量级锁