第一种是传统的方法:

#include <iostream>using namespace std;int main() {srand(NULL);for (int i = 0; i < 100; i++) {cout << rand() << ' ';}return 0;
}

这种方法比较传统,缺点是随机性不够好,而且不能自己选择生成的随机数的范围。
以及如果你短时间内多次调用srand(NULL),生成的随机数是相同的:c - srand(time(NULL)) doesn’t change seed value quick enough - Stack Overflow


新的C++11的做法如下:

#include <iostream>
#include <random>int main() {std::random_device rd;     //Get a random seed from the OS entropy device, or whateverstd::mt19937_64 eng(rd()); //Use the 64-bit Mersenne Twister 19937 generator//and seed it with entropy.//Define the distribution, by default it goes from 0 to MAX(unsigned long long)//or what have you.std::uniform_int_distribution<unsigned long long> distr;//Generate random numbersfor (int n = 0; n < 40; n++){std::cout << distr(eng) << ' ';}std::cout << std::endl;
}

比如说你想生成1-6的随机数,做法如下:

#include <random>
#include <iostream>int main() {std::random_device rd;     //Get a random seed from the OS entropy device, or whateverstd::mt19937_64 eng(rd()); //Use the 64-bit Mersenne Twister 19937 generator//and seed it with entropy.//Define the distribution, by default it goes from 0 to MAX(unsigned long long)//or what have you.std::uniform_int_distribution<unsigned long long> distr(1, 6);// distribution in range [1, 6]//Generate random numbersfor (int n = 0; n < 40; n++) {std::cout << distr(eng) << ' ';}std::cout << std::endl;
}

参考:c++ - Generating random integer from a range - Stack Overflow

C++ 随机数生成的2种方法--生成指定范围内的随机数相关推荐

  1. C++生成指定范围内的随机数

    代码 rand()% 3 : 3就是范围,代表生成[0,3)之间的随机数 int main(){for (int i = 0; i < 20; i++) {switch (rand() % 3) ...

  2. JavaScript生成指定范围内的随机数

    实现一个产生随机值的函数,只需要指定随机值的范围. <script type="text/javascript">var rand = {};rand.get = fu ...

  3. 关于 Math.random()生成指定范围内的随机数的公式推导

  4. 用java script随机数_js中Math.random()生成指定范围数值的随机数【转】

    Math.random函数就不像php的rand函数一样可以生成指数范围的数据了,math.random只是生成了一个伪随机数,之后还要经过我们处理才行哦. 今天又有网友问到我 JavaScript ...

  5. 张赐荣 | C语言指定范围内产生随机数

    C语言指定范围内产生随机数 在实际开发中,我们经常需要一定范围内的随机数,太大或太小都不符合要求,那么,如何生成指定范围的随机数呢?我们可以采用取模的方法: int r = rand() % 10; ...

  6. 【知识积累】随机数生成的几种方法

    一.前言 在我们平时写代码的时候,免不了会使用到随机数,特此将几种随机的生成总结如下. 二.随机数生成 对于随机数的生成,分为四种情况,假设两个数为min, max,则有如下四种情况. 1. (min ...

  7. 【C】C语言三种方法判别指定字符串是否被另一字符串包含

    文章目录 C语言两种方法判别指定字符串是否被另一字符串包含 一.方案一 1.代码 2.结果 二.方案二 1.代码 2.结果 三.方案三 1.代码 2.结果 四.参考链接 C语言两种方法判别指定字符串是 ...

  8. Java书签 #用Java生成指定位数不重复随机数

    楔子:或许我一次恋爱都不曾体验就老了.我可能无法和任何人恋爱.我可能一辈子都不会知道恋爱是什么.虽然我的大脑知道念念不忘某个人并为他哭泣.痛苦的感觉,比什么都不知道的要好,可是我的大脑并没有教我如何才 ...

  9. 【C++操作手册】C++生成指定范围内随机数rand(随机数种子)

    c++中的rand函数是用来生成随机数的,它的生成范围是0-Random_max,这个一个内部定义的一个常量,如果我们需要每次生成的随机数不同,这时需要加上随机数种子,利用srand()函数,我们可以 ...

最新文章

  1. 启动root用户 银河麒麟_【高新区企业在行动】面向华为openEuler优麒麟UKUI正式发布 文件管理器从底层开始进行重构...
  2. 水域大小 Java_水域大小
  3. WEBTIMER控件研究的心得:丢开书本做一个WebTimer
  4. QString包含中文时与char *转换
  5. python3 中方法各种参数和返回值
  6. 第十三:Pytest参数化-@pytest.mark.parametrize装饰器来实现数据驱动测试
  7. 一个比较隐蔽热门的微信解封项目
  8. empty怎么发音_empty怎么读?empty是什么意思?
  9. 前端开发 基础知识 dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
  10. 39个大数据可视化工具
  11. 最新Discuz【西瓜】微信登录插件
  12. 能装linux的嵌入式,试试一张软盘可装下Linux(嵌入式Linux)
  13. win11、10下安装eNSP最新版(1.3.00.200T)并完美运行(转载)
  14. php电脑端打开微信页面大小,电脑微信小程序设置全屏的方法是什么?
  15. SpringCloud系列(3)---Netfilx-Ribbon
  16. revit二次开发的一些前期准备
  17. 如何学会战略性思维?
  18. QT笔记--QT内类的层次关系,以及控件从属关系
  19. PYTHON的原地操作
  20. HDU1597 find the nth digit

热门文章

  1. 实战药物分子筛选之一_初探
  2. eplan怎么插入表格_EPLAN电气图实例控制柜(控制面板)
  3. Nature子刊:Knight组发布快速UniFrac算法
  4. 图之典—可视化图表的词典
  5. RandomForest:随机森林预测生物标记biomarker——回归
  6. QIIME 2教程. 09数据导入Importing data(2020.11)
  7. php怎么复制变量,php - 将用户名保留在变量/函数中供以后使用[复制] - SO中文参考 - www.soinside.com...
  8. R语言ggplot2可视化:可视化多个图像并组合起来(如果没有对齐,看着丑陋))、保证组合的图像图像区域对齐或者图像整体对齐(Align plot areas in ggplot)
  9. R语言WVPlots包可视化克利夫兰点ClevelandDotPlot、并按照分类变量排序进行可视化克利夫兰点ClevelandDotPlot
  10. R语言使用ggplot2包使用geom_density()函数绘制分组密度图(添加直方图、分组颜色配置)实战(density plot)