C++中生成随机数有两种方法:一是使用传统的rand()函数,需配合srand()设置种子,适用于简单场景但随机性差;二是推荐的头文件,通过随机数引擎如std::mt19937和分布器如std::uniform_int_distribution生成高质量随机数,支持多种分布,适合复杂项目。

在C++中生成随机数,常用的方法有两种:使用传统的 rand() 函数和现代C++推荐的 头文件。下面分别介绍它们的用法和注意事项。
使用 rand() 生成随机数
这是C语言沿用下来的方式,在C++中仍然可用,但不推荐用于高质量随机场景。
包含头文件:#include 使用 srand() 设置种子,避免每次运行产生相同的序列调用 rand() 获取随机整数(范围:0 到 RAND_MAX)
示例代码:
#include iostream>
#include
#include
int main() {
srand(time(0)); // 以当前时间作为种子
int random_num = rand(); // 生成随机数
std::cout return 0;
}
如果要生成指定范围内的随机数,比如 [min, max],可以这样写:
立即学习“C++免费学习笔记(深入)”;
int random_in_range = min + rand() % (max – min + 1);
使用 头文件(推荐)
C++11 引入了更强大、更灵活的随机数工具,位于 头文件中。它能生成高质量、分布均匀的随机数。
使用随机数引擎(如 std::mt19937,梅森旋转算法)配合分布器(如 std::uniform_int_distribution)控制范围推荐使用 std::random_device 作为种子来源
示例代码(生成1到100之间的随机整数):
#include stream>
#include
int main() {
std::random_device rd; // 真实随机种子
std::mt19937 gen(rd()); // 随机数引擎
std::uniform_int_distribution dis(1, 100); // 分布范围
int random_num = dis(gen);
std::cout return 0;
}
也可以生成浮点数:
std::uniform_real_distribution dis(0.0, 1.0);
两种方法对比
rand():简单易用,但随机性差,RAND_MAX 有限,容易重复:更现代、更可靠,支持多种分布(正态、泊松等),适合复杂项目
基本上就这些。日常小项目可以用 rand() 快速实现,正式开发建议使用 。
以上就是c++++如何生成随机数_c++随机数生成方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1477402.html
微信扫一扫
支付宝扫一扫