前提概要

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()相关推荐

  1. 【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 限制随机数的范 ...

  2. rand()和srand()关系很简单——一看就明白(通过一个可移植的源码)

    1 函数rand和srand实现及描述 #include <stdlib.h> //供rand()使用的种子数,初值为1 unsigned long int next = 1; /* * ...

  3. rand和srand

    rand()和srand()函数我们应该接触的比较多了,之前就遇到过,弄懂了,但是现在又忘了.再次遇见写篇文章记录一下. srand()用来设定一个随机数种子,其参数必须是整数,不同的随机数种子使ra ...

  4. C++中随机函数rand()和srand()的用法

    一.rand() 函数名:   rand      功   能:   随机数发生器    用   法:   int rand(void); 所在头文件: stdlib.h 函数说明 : rand()的 ...

  5. C语言之rand()和srand()函数

    1.rand().srand()函数介绍 srand 初始化随机种子,rand 产生随机数 定义函数:int rand(void) 函数功能:产生随机数 函数说明:rand的内部实现是用线性同余法做的 ...

  6. C语言随机数:rand()和srand(time(NULL))的使用

    C语言随机数 rand()简介 srand()简介 使用 rand()简介 使用该函数首先应在开头包含头文件<stdlib.h> #include<stdlib.h> //(C ...

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

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

  8. rand和srand的用法(转载)

    首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明. rand(产生随机数) 表头文件: #include<stdlib.h&g ...

  9. rand()和srand()函数的用法

    一.rand() rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的. rand()会返回一个范围在0到RAN ...

  10. C 语言 rand() 和 srand() 使用方法

    前言 有时我们想用 rand() 生成一组随机数,虽然我们调用了 srand(),但是生成的还是相同值.为什么会产生这种情况?又该如何解决?下面将用第一视角一起探究这其中的奥秘. 问题出现 场景描述: ...

最新文章

  1. SET ROWCOUNT
  2. 有人质疑面向对象编程?
  3. Entity相互关系
  4. TCP三次握手和四次挥手图示
  5. ecshop 首页添加某个分类下面的商品
  6. Qt / QMainWindow、QDialog、QWidget
  7. SSM整合项目中使用百度Ueditor遇到的问题。
  8. mysql命令行如何建库_MySQL心得2--命令行方式建库和表
  9. 远程连接本地mongodb 数据库
  10. spring boot整合shiro继承redis_Springboot+Shiro+redis整合
  11. bzoj3214 [Zjoi2013]丽洁体 dp
  12. iOS开发常用技能点(持续更新中。。。)
  13. Java编程思想1-对象导论
  14. 新安装IAR打开现有工程
  15. 关于ESAPI无法打印debug级别日志
  16. 计算机二进制计算过程
  17. windows MSOCache删除
  18. 在Linux系统下安装更换操作系统
  19. 角色攻击、角色特殊动作
  20. Synchronized锁升级:无锁-> 偏向锁 -> 轻量级锁 -> 重量级锁

热门文章

  1. 自动化运维工具——Ansible
  2. $route.matched的作用以及面包屑导航的制作
  3. yolov5ds-yolov5做分割(尝试ing)
  4. 企查查爬虫python实现(一)整体方法
  5. 002_simulink中显示模块中的名字
  6. Kali忘记密码的重置方法
  7. Android 打开系统文件管理器选择文件
  8. php计算用户留存,留存率到底有几种计算方式
  9. 宏发41F-1Z-C2接线
  10. 如何在电脑上用Win11便签备忘录提醒重要工作