从整数列表中选择一个随机数
Choose a random number from a list of integer
我有一个整数intList = {1, 3. 5. 2}
列表(它只是一个例子整数和大小都是未知的)。我必须从列表中随机选择一个数字。
RandomInt = rand() % intList.size()
的工作方式与 RandomInt = rand() % 4
,生成1 ~ 4之间的随机数。而intList则不同。
如果我使用RandomInt = std::random_shuffle = (intList, intList.size())
仍然出现错误。我不知道怎么从一个列表中选择一个随机数
作为子步骤,您需要生成随机数,因此您不妨使用c++ 11的方式(而不是使用modulo,顺便说一下,众所周知,它对小数字有轻微的偏见):
以
开头#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)];
}
你只需要使用"indirection":
std::vector<int> list{6, 5, 0, 2};
int index = rand() % list.size(); // pick a random index
int value = list[index]; // a random value taken from that list
int arrayNum[4] = {1, 3, 5, 2};
int RandIndex = rand() % 5; // random between zero and four
cout << arrayNum[RandIndex];
相关文章:
- 如何在 c++ 中从数组中选择一个随机数?
- 从大范围内生成一个随机数,但从大范围的中间开始生成较小的范围
- 如何在C++中创建数字列表,以便它可以选择一个随机数?
- 在[0,1)C 之间生成一个随机数
- 在此过程中的纸牌游戏程序.不知道为什么我会得到一个随机数-858993460
- 为什么递增指针会给出一个随机数,而不是内存地址
- 如何使用Linux GetRandom系统调用来在范围内生成一个随机数
- visual如何在C++中创建一个随机数数组
- 选择一个随机方块并生成一个随机数
- 在一个间隔内生成一个随机数,但某些数字除外:EXC_BAD_ACCESS
- 当你复制一个随机数引擎和随机数分布时会发生什么?
- 给一个数组一个随机数
- 从整数列表中选择一个随机数
- 提供的示例代码返回一个随机数,即使在抛出异常之后也是如此(提供的代码)
- 如何使用openssl获得一个随机数
- 为什么在头文件的第一行放一个随机数
- C++和Qt:不要在x分钟内选择一个随机数
- 随机数生成器不会给我一个随机数
- 有没有一种方法可以让我从0-10亿中得到一个随机数
- 构造函数中变量的启动不起作用,而是给我一个随机数