使用库生成指定范围随机数是C++中推荐的方法,通过random_device获取种子,mt19937作为引擎,uniform_int_distribution或uniform_real_distribution设置范围,可生成分布均匀的整数或浮点数,相比rand()方法更精确、避免偏差问题。

在C++中生成指定范围内的随机数,常用的方法是结合标准库中的 头文件。相比传统的 rand() 函数,现代C++推荐使用更精确、分布更均匀的随机数生成方式。
使用 生成指定范围随机数
这是目前最推荐的方式,可以生成指定范围内分布均匀的整数或浮点数。
使用 std::random_device 获取一个种子使用 std::mt19937 作为随机数引擎(梅森旋转算法)使用 std::uniform_int_distribution 设置整数范围
示例代码(生成 [min, max] 范围内的整数):
#include iostream>
#include
int main() {
std::random_device rd; // 随机种子
std::mt19937 gen(rd()); // 随机数引擎
std::uniform_int_distribution dis(1, 100); // 范围 [1, 100]
for (int i = 0; i std::cout }
// 输出类似:42 17 89 3 65
return 0;
}
生成浮点型随机数
如果需要生成指定范围的浮点数,使用 std::uniform_real_distribution。
立即学习“C++免费学习笔记(深入)”;
示例(生成 [0.0, 1.0) 之间的浮点数):
std::uniform_real_distribution dis(0.0, 1.0);
for (int i = 0; i std::cout }
兼容旧式 rand() 方法(不推荐)
虽然不推荐,但在简单场景中仍有人使用 rand()。
生成 [min, max] 范围内随机数的写法:
int random_num = min + rand() % (max – min + 1);
注意: 这种方法分布不均,尤其当范围不是 RAND_MAX 的约数时。必须先调用 srand(time(0)) 初始化种子,否则每次结果相同。
基本上就这些。优先使用 库,避免 rand() 带来的偏差问题。
以上就是c++++怎么生成一个范围内的随机数_c++生成指定范围随机数方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1479293.html
微信扫一扫
支付宝扫一扫