所谓的随机,实际上是伪随机。(真随机应该是每次需要随机数时都实时随机产生)

随机数函数的实质是

每次调用rand()前,(第一次调用rand())系统通过随机数种子生成一个随机数队列。每次调用rand()时,直接从该随机队列里依次获取下一随机数。
随机数种子对于随机数序列至关重要。随机数种子可以通过srand()设置。
通常的设置方法为:srand((int)time(null)),使用时间戳作为种子可以保证每次生成的随机数序列都不一样。当然,在一秒钟内除外。

随机数种子一样,生成的随机数序列也就一样。如果不使用srand()设置随机数种子,随机数种子为默认值0。带来的影响是:每次生成的随机数序列都一样。

下面程序中,每次的结果都会一样,这肯定不是我们想要的结果。

for (int idx = 0; idx < 10; ++idx)
{std::cout << rand() % 10 << " ";
}std::cout << std::endl;

你需要以当前时间戳作为参数调用srand()

srand((int)time(null));
for (int idx = 0; idx < 10; ++idx)
{std::cout << rand() % 10 << " ";
}std::cout << std::endl;

C++ 随机数函数rand()与srand()的思考相关推荐

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

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

  2. 随机数函数rand()和srand()的区别

    引子 相信大家对于rand()函数并不陌生,我们常用它来生成伪随机数,但是为什么有时候我们生成的随机数并不符合预期呢?或者说,为什么有时候我们生成的随机数并不随机?如何有效地生成伪随机数呢? rand ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. iis7下站点日志默认位置
  2. 数据结构实验之二叉树七:叶子问题
  3. 完全删除垃圾Q+!!!
  4. class反编译_IDEA反编译功能小试牛刀
  5. 前端学习(1770):前端调试之如何参照站点的manifest
  6. 弱鸡儿长乐爆零旅Day4
  7. mysql任务调度器_mysql存储过程和任务调度器
  8. ICCV 2017:训练GAN的16个技巧,2400+星(PPT)
  9. LSF集群基本概念介绍
  10. 查询-SPJ练习3参考答案
  11. iPics2Go: iPhone变身扫描仪
  12. 两行代码制作你的专属动态二维码
  13. TensorFlow通过Cholesky矩阵分解实现线性回归
  14. JAVA毕业设计基层党支部建设平台计算机源码+lw文档+系统+调试部署+数据库
  15. 计算音频一秒播放多少帧
  16. 三维仿真引擎软件HLCSim有什么用
  17. android studio 自定义mk文件
  18. Salesforce宣布与阿里巴巴达成战略合作 向全国开放CRM平台
  19. python没有用官方正版会不会有什么影响呢_正版系统有必要买吗
  20. 怎么用计算机发出弹奏的声音,计算机发出刺耳的声音怎么了?[详细介绍]

热门文章

  1. easyui-combobox实现placeholder提示效果
  2. cocos2dx 3.1从零学习(四)——内存管理(错误案例分析)
  3. Windows下ant环境搭建
  4. 安装Sublime Text 3插件的方法
  5. docker--强制删除none的image镜像
  6. 超赞!聊聊WEB APP、HYBRID APP与NATIVE APP的设计差异
  7. 2 抽象工厂模式(Abstract Factory)
  8. 4.CND技术详解---集群服务与负载均衡技术
  9. jsp标签 meta的解释
  10. php中file文件操作函数readfile fread fgets fgetc以及不需要加fopen的file_get_contents file_put_contents file()