C++ 生成随机向量
C++ Generating random vector
我刚刚开始,试图学习编程。所以我现在正在C++编程,我试图创建一个函数,该函数将根据参数生成随机整数向量。所以我到目前为止的函数看起来像这样:
std::vector<int> GenerateRandomVector(int NumberCount,int minimum, int maximum) {
std::vector<int> vecRandomValues;
int i = 0, randValue = 0;
srand(time(NULL));
while (i < NumberCount) {
randValue = rand() % maximum + minimum;
vecRandomValues.push_back(randValue);
i++;
}
return vecRandomValues;
}
所以,我的问题是它不尊重我给它的最小值和最大值,而且大多数时候,生成的数字中有 40% 是 0。我无法弄清楚我在这里做错了什么,也不知道如何解决它。我在 Windows 10 上使用 Clion。
扩展@Some程序员 dude 的评论:
std::vector<int> GenerateRandomVector(int NumberCount,int minimum, int maximum) {
std::random_device rd;
std::mt19937 gen(rd()); // these can be global and/or static, depending on how you use random elsewhere
std::vector<int> values(NumberCount);
std::uniform_int_distribution<> dis(minimum, maximum);
std::generate(values.begin(), values.end(), [&](){ return dis(gen); });
return values;
}
您对范围的计算是错误的。
randValue = rand() % (maximum - minimum + 1) + minimum;
相关文章:
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 指向用随机指针归档的其他类对象的指针的c++向量
- 我怎样才能在不重复的情况下随机迭代向量的每个元素
- 从长(且合理)稀疏向量中选择随机元素的最有效方法是什么?
- C++ 生成随机向量
- 随机访问元组向量中的元组值
- 将一个随机的字符序列和int序列解析为单独的向量
- 从C++向量中随机选取
- C++线程的向量在连接时随机崩溃
- C 从向量的子集返回一个随机值
- 使用随机值初始化 2D 向量
- 多次随机向量后的读取访问冲突
- 随机采样C++中具有权重的元组的向量
- 如何使用 std::shuffle 以随机顺序对具有唯一指针的向量进行洗牌
- 从另一个向量制作随机配对向量
- 使用 std::find 在向量中定位随机生成的数字
- 创建一个随机的std ::向量,其中一个和零C
- 尝试创建随机整数向量时的OpenMPI编译器错误
- 如何从向量中获取随机和唯一值?
- 使用 和 函数生成随机双向量<random>