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 引入了更强大、更灵活的随机数工具,位于
网趣购物系统静态版支持网站一键静态生成,采用动态进度条模式生成静态,生成过程更加清晰明确,商品管理上增加淘宝数据包导入功能,与淘宝数据同步更新!采用领先的AJAX+XML相融技术,速度更快更高效!系统进行了大量的实用性更新,如优化核心算法、增加商品图片批量上传、谷歌地图浏览插入等,静态版独特的生成算法技术使静态生成过程可随意掌控,从而可以大大减轻服务器的负担,结合多种强大的SEO优化方式于一体,使
- 使用随机数引擎(如 std::mt19937,梅森旋转算法)
- 配合分布器(如 std::uniform_int_distribution)控制范围
- 推荐使用 std::random_device 作为种子来源
示例代码(生成1到100之间的随机整数):
#include
#include
int main() {
std::random_device rd; // 真实随机种子
std::mt19937 gen(rd()); // 随机数引擎
std::uniform_int_distribution
int random_num = dis(gen);
std::cout
return 0;
}
也可以生成浮点数:
std::uniform_real_distribution
两种方法对比
基本上就这些。日常小项目可以用 rand() 快速实现,正式开发建议使用










