温馨提示×

如何自定义random_shuffle的随机数生成器

小樊
96
2024-09-04 07:20:33
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

random_shuffle 是 C++98 中的一个函数,用于对序列进行随机排序

以下是一个使用 C++11 和 std::shuffle 的示例:

#include<iostream>
#include<vector>
#include<random>
#include<algorithm>

int main() {
    std::vector<int> v = {1, 2, 3, 4, 5};
    
    // 创建一个随机数生成器
    std::random_device rd;
    std::mt19937 g(rd());

    // 使用自定义随机数生成器对向量进行随机排序
    std::shuffle(v.begin(), v.end(), g);

    for (int i : v) {
        std::cout << i << ' ';
    }
    std::cout << '\n';

    return 0;
}

在这个示例中,我们首先包含了必要的头文件,然后创建了一个包含整数的向量。接着,我们创建了一个基于 Mersenne Twister 算法的随机数生成器 g,并使用 std::random_device 为其提供种子。最后,我们使用 std::shuffle 函数和自定义的随机数生成器 g 对向量进行随机排序。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:随机数生成器可以自定义吗

0