C++ 库有一个名为 rand() 的函数,每次调用该函数都将返回一个非负整数。要使用 rand() 函数,必须在程序中包含 <cstdlib> 头文件。

随机产生整数

直接调用rand()即可:
示例代码:

#include <iostream>
#include <cstdlib>
using namespace std;int main()
{cout << rand() << endl;return 0;
}

随机产生某个范围内的整数、

  • rand()%a生成的是0~(a-1)之间的数字
  • rand()%a+b表示生成b~(a+b-1)之间的整数
    示例代码:
#include <iostream>
#include <cstdlib>
using namespace std;int main()
{cout << rand()%10 << endl;   ///产生0-9之间的整数cout << rand()%10+1 << endl;   ///产生1-10之间的整数return 0;
}

随机产生小数

rand()%a产生的是0~(a-1)之间的整数,如果我想得到一个0-1之间的小数直接再除以a即可,这样获取的一定是个小数
示例代码:

#include <iostream>
#include <cstdlib>
using namespace std;int main()
{cout << rand()%10/(double)10 << endl;return 0;
}

产生变化的随机数

细心的你可能已经发现了,上面产生的随机数一直都是不变的,这并不是我们想要的结果,那怎么产生变化的随机数呢?
这就要用到srand(),srand()可用来设置rand()产生随机数时的随机数种子。通过设置不同的种子,我们可以获取不同的随机数序列。
但是怎么获取不同的种子比较方便呢?我们可以引入time(0)函数,time(0)每一次返回的值都是不一样的,用它当我们的随机种子再好不过了,使用time(0)函数要引入<ctime>头文件哦
代码示例:

#include <iostream>
#include <cstdlib>
#include<ctime>
using namespace std;int main()
{srand(time(0));cout << rand()%10 << endl;  ///产生0-9之间变化的整数return 0;
}

C++产生随机数字最全教程相关推荐

  1. Docker最全教程——数据库容器化(十一)

    终于按时完成第二篇.本来准备着手讲一些实践,但是数据库部分没有讲到,部分实践会存在一些问题,于是就有了此篇以及后续--数据库容器化.本篇将从SQL Server容器化实践开始,并逐步讲解其他数据库的容 ...

  2. Java随机字符串:随机数字字符串,工具类

    Java中生成随机数,字符串的工具类 1. 调用方法需要传入生成字符串的长度和需要的类型 生成随机数字 生成随机字母字符串 生成随机字符串+数字等 ......... 2. 总共8种类型,具体看工具类 ...

  3. 使用Reactor进行反应式编程最全教程

    反应式编程(Reactive Programming)这种新的编程范式越来越受到开发人员的欢迎.在 Java 社区中比较流行的是 RxJava 和 RxJava 2.本文要介绍的是另外一个新的反应式编 ...

  4. Ubuntu 编译安装ffmpeg,mplayer,x264全教程支持VDPAU(高清硬解)

    这个是针对Ubuntu 10.04 AMD64的安装ffmpeg,mplayer,x264全教程,包括VDPAU Ubuntu 10.10AMD64也是可以的. 目前mplayer仍然使用svn,编译 ...

  5. 视频捕捉全教程(vc+vfw)

    视频捕捉全教程(vc+vfw) 目 录 一. 视频捕获快速入门 二.基本的捕获设置 1.设置捕获速度: 2.设置终止捕获 3.捕获的时间限制 三.关于捕获窗口 1.创建一个AVICAP捕获窗口 2.将 ...

  6. 视频教程-Python开发全教程-Python

    Python开发全教程 目前就职于中国唯品会做iOS开发工程师,在良师益友网,麦子学院任职iOS讲师,出版iOS编程学习书籍<7天玩转iOS界面开发>,<初级到AppStore上架& ...

  7. Metis从安装到使用全教程(Linux)

    Metis全教程 Metis的安装 基本环境配置 编译以及安装 使用METIS中programs 使用METIS API 总结 Metis的安装 首先需要从Karypis Lab 的网页上进行下载开源 ...

  8. (转)FPE修改全教程1

    (转)FPE修改全教程1 [原创]FPE修改全教程       很早的时候,当出现了视窗系统以后,图形界面就深得人们的喜爱,从古老的DOS界面的幼稚的波斯王子开始,便逐渐的出现了更高意义上的游戏,更优 ...

  9. 视频捕捉全教程(MFC+vfw)

    视频捕捉全教程(vc+vfw) 目 录 一. 视频捕获快速入门 二.基本的捕获设置 1.设置捕获速度: 2.设置终止捕获 3.捕获的时间限制 三.关于捕获窗口 1.创建一个AVICAP捕获窗口 2.将 ...

  10. gtasa联机服务器注册,GTA SA:MP 0.1 联机服务器建设全教程(XP系统)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 说明:在游戏中一般换图的命令是 /rcon changemode 地图名, 注意地图名不需要后缀名,地图在你的gamemodes文件夹中,如果你想用/rc ...

最新文章

  1. JAVA中字符集详解
  2. jquery.dataTables.min.js: Uncaught TypeError: Cannot read property 'style' of undefined
  3. 浅析Avicii的MV Hey Brother
  4. [poj] 2749 building roads
  5. sql server 2008安装_性能不够?基于时序数据库的Zabbix 5.2安装指南
  6. 2.Cannot find config.m4.
  7. Linux下辅助DNS的搭建以及远程和加密更新
  8. vue 点击文字input_vue input实现点击按钮文字增删功能示例
  9. elasticsearch及Kibana入门安装
  10. 路由器截获微信消息_猫(Modem)和路由器有什么区别?
  11. oracle回收站还原,Oracle从“回收站”恢复删除的表
  12. std::asio小记
  13. pytorch绘制loss和accuracy曲线
  14. 腾讯实时股票数据接口怎么获取行情?
  15. react 调用webIm
  16. Linux系统_通过命令新建MySQL数据库并导入sql文件
  17. 【机器视觉】机器人及视觉检测系统在螺丝检测包装生产线上的应用
  18. 微信官方支付接口配置教程
  19. 【darknet源码解析-24】shortcut_layer.h 和 shortcut_layer.c 解析
  20. win10右键新建为什么没有文本文档了

热门文章

  1. 《三国演义》人物出场实例详解
  2. SSD的priorbox层
  3. 网站被黑的10大原因
  4. centos7环境下编译bitcoin
  5. 1.ESP32文件夹配置,创建自己的工程 Vscode+Idf插件
  6. 高琪老师(零基础初学入门)J20飞机项目飞机爆炸轮播图片
  7. 重新开始噼里啪啦写小文字啦~
  8. 物联网python开发实践
  9. YBC携手IZO打造创业家的摇篮
  10. TensorFlow中图(graphs)概念