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

C++11之前没有random,生成随机数用rand(),可以配合srand()来使用。rand()不是真正的生成随机数,而是线性取余,有可能也会生成相同的数出来。生成的随机数最大值为RAND_MAX,宏定义在<stdlib.h>中,为0x7FFF,也就是4294967295。
rand()规则:
生成0到最大值之间的随机数:rand()
生成(a,b)之间的随机数:(rand()%(b-a)) + (a+1)
生成[a,b)之间的随机数:(rand()%(b-a)) + a
生成(a,b]之间的随机数:((rand()%(b-a)) +a )+ 1
生成[a,b]之间的随机数:(rand()%(b-a+1)) + a
例如产生一个10~20之间的随机数

(rand()%10) + 10

srand()用来设置rand()产生随机数时的随机数种子。 参数seed必须是个整数,通常可以利用time(0)的返回值或NULL来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。

#include <iostream>
#include <stdlib.h>
#include <random>
#include <ctime>
using namespace std;void f1()
{srand((int)time(0));cout << "f1 rand:" << endl;for (int i = 0; i < 10; ++i){cout << rand() << ' ';}cout << endl;
}void f2()
{cout << "f2 rand:" << endl;for (int i = 0; i < 10; ++i){srand((int)time(0));cout << rand() << ' ';}cout << endl;
}int main()
{f1();f2();system("pause");return 0;
}

输出:

f1 rand:
28071 30499 28792 20690 25000 5286 6554 1446 4794 29189
f2 rand:
28071 28071 28071 28071 28071 28071 28071 28071 28071 28071

产生相同随机数的原因:
计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。

C++产生随机数函数rand()相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. C语言之随机数函数( rand() )的使用方法

    文章出自个人博客https://knightyun.github.io/2018/04/25/c-rand-number,转载请申明. 在程序设计中,难免会使用到随机值函数,其原理与语法大多类似,接下 ...

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

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

最新文章

  1. 84. Leetcode 70. 爬楼梯 (动态规划-基础题)
  2. Redis操作命令(一)
  3. 设计趋势:液态渐变色彩背景
  4. 【推荐实践】强化学习在美团“猜你喜欢”的实践
  5. js实现(可实现局部打印)
  6. Python机器学习数据预处理:读取txt数据文件并切分为训练和测试数据集
  7. 2018年的人工智能将如何发展?看看专家怎么说
  8. python appium 并行多设备_appium 多个设备同时执行
  9. 【Registration of 3D Point Clouds with Low Overlap】
  10. cocos2d 解密ccbi_CocosBuilder 学习笔记(3) AnimationManager 与 ccbi 文件解析
  11. 信息矩阵、海森矩阵、权重矩阵、协方差阵
  12. A Bluescreen By Any Other Color
  13. HTML+CSS 图片翻转
  14. 使用EasyPoi导出Word文件,使用@Excel注释导出实体对象图片的解决方案
  15. 微信小程序使用特殊字体包
  16. linux uts 全称
  17. 清风数模课---多元回归分析
  18. Java JDK 下载官方网站
  19. 1024——依然是写给你
  20. sql server 数字转大写

热门文章

  1. __dirname和__filename
  2. 说一说Glide.with()
  3. ADC采样时间、采样周期、采样频率计算方法
  4. 盘点人工智能重点技术领域
  5. html代码中的nofollow属性
  6. maven 引用其他项目引用的包出现BOOT-INF问题
  7. windows删除大量文件的优秀方式
  8. 网页脚本输入这么简单
  9. 教你如何用ffmpeg处理音频格式转换(标贝科技)
  10. win10搜索服务器文件慢,Win10系统怎么加快文件搜索速度