C++如何生成随机数?(代码示例)

admin 百科 17
C++11推荐用头文件生成随机数,核心是std::random_device(真种子)、std::mt19937(伪随机引擎)和uniform_int/real_distribution(分布),避免重复创建引擎或分布,弃用rand()。

C++如何生成随机数?(代码示例)-第1张图片-佛山资讯网

在C++中生成随机数,推荐使用C++11引入的 <random></random> 头文件,它比传统的 srand()/rand() 更安全、更灵活、分布更均匀。

std::random_devicestd::mt19937 生成高质量随机数

std::random_device 是真正的随机数生成器(通常基于硬件),用来初始化伪随机数引擎;std::mt19937(梅森旋转算法)是常用且高效的伪随机引擎。

示例:生成 [1, 100] 区间的整数

#include <iostream>
#include <random>

int main() {
    std::random_device rd;                     // 真随机种子
    std::mt19937 gen(rd());                    // 以rd为种子初始化引擎
    std::uniform_int_distribution<int> dis(1, 100); // 定义整数均匀分布 [1, 100]

    for (int i = 0; i < 5; ++i) {
        std::cout << dis(gen) << " ";
    }
    std::cout << "\n";
    return 0;
}

登录后复制

生成浮点随机数(如 [0.0, 1.0))

std::uniform_real_distribution,注意默认区间是左闭右开:

立即学习“C++免费学习笔记(深入)”;

标签: ai c++ ios stream 作用域

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~