91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何避免random_shuffle產生的重復結果

小樊
86
2024-09-04 07:17:37
欄目: 編程語言

random_shuffle 函數在 C++17 中已被棄用,并在 C++20 中被移除。取而代之的是 std::shuffle 函數,它使用隨機數生成器來打亂容器中的元素。為了避免產生重復的結果,你可以使用 std::mt19937 作為隨機數生成器,并為其提供一個基于時間的種子。這樣,每次運行程序時,都會得到不同的隨機結果。

以下是一個使用 std::shuffle 的示例:

#include<iostream>
#include<vector>
#include<random>
#include<chrono>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    // 使用基于時間的種子初始化隨機數生成器
    unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
    std::mt19937 random_engine(seed);

    // 使用 std::shuffle 打亂容器中的元素
    std::shuffle(numbers.begin(), numbers.end(), random_engine);

    // 輸出打亂后的元素
    for (int num : numbers) {
        std::cout<< num << " ";
    }
    std::cout<< std::endl;

    return 0;
}

這段代碼首先創建一個包含 1 到 10 的整數向量。然后,它使用基于時間的種子初始化 std::mt19937 隨機數生成器。最后,它使用 std::shuffle 函數打亂向量中的元素,并將結果輸出到控制臺。每次運行此程序時,都會得到不同的隨機結果。

0
郧西县| 周口市| 乌鲁木齐市| 彝良县| 房山区| 玉屏| 大埔县| 枝江市| 辛集市| 仲巴县| 闽清县| 沁水县| 宾阳县| 互助| 翁牛特旗| 措美县| 游戏| 辽中县| 海南省| 邯郸市| 开封市| 惠东县| 泸溪县| 汉阴县| 贞丰县| 杂多县| 阆中市| 德保县| 象州县| 高邮市| 兴安盟| 新平| 娄底市| 五常市| 民丰县| 甘洛县| 潢川县| 林甸县| 石渠县| 营口市| 马山县|