溫馨提示×

如何自定義random_shuffle的隨機(jī)數(shù)生成器

小樊
87
2024-09-04 07:20:33
欄目: 編程語言

random_shuffle 是 C++98 中的一個函數(shù),用于對序列進(jìn)行隨機(jī)排序

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

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

int main() {
    std::vector<int> v = {1, 2, 3, 4, 5};
    
    // 創(chuàng)建一個隨機(jī)數(shù)生成器
    std::random_device rd;
    std::mt19937 g(rd());

    // 使用自定義隨機(jī)數(shù)生成器對向量進(jìn)行隨機(jī)排序
    std::shuffle(v.begin(), v.end(), g);

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

    return 0;
}

在這個示例中,我們首先包含了必要的頭文件,然后創(chuàng)建了一個包含整數(shù)的向量。接著,我們創(chuàng)建了一個基于 Mersenne Twister 算法的隨機(jī)數(shù)生成器 g,并使用 std::random_device 為其提供種子。最后,我們使用 std::shuffle 函數(shù)和自定義的隨機(jī)數(shù)生成器 g 對向量進(jìn)行隨機(jī)排序。

0