gpt4 book ai didi

c++ - 从整数列表中选择一个随机数

转载 作者:太空狗 更新时间:2023-10-29 23:49:34 50 4
gpt4 key购买 nike

我有一个整数列表 intList = {1, 3. 5. 2}(它只是一个示例整数和大小都是未知的)。我必须从该列表中选择一个随机数。

RandomInt = rand() % intList.size() 

将以类似的方式工作 RandomInt = rand() % 4

并生成一个1到4之间的随机数。而intList则不同。

如果我使用 RandomInt = std::random_shuffle = (intList, intList.size())仍然出错。我不知道如何从列表中选择一个随机数。

最佳答案

因为作为一个子步骤,您需要生成随机数,所以您不妨以 C++11 的方式进行(而不是使用模数,顺便说一下,模数是 known to have a slight bias toward low numbers ):

假设你开始于

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

int main()
{
const std::vector<int> intList{1, 3, 5, 2};

现在定义随机生成器:

    std::random_device rd; 
std::mt19937 eng(rd());
std::uniform_int_distribution<> distr(0, intList.size() - 1);

当你需要生成一个随机元素时,你可以这样做:

    intList[distr(eng)];
}

关于c++ - 从整数列表中选择一个随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39762530/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com