c++ - 在二维数组中生成随机数时保证特定数字的 X 数量的任何方法

标签 c++ c++11 random

我需要用随机数填充大小为 n 的二维数组,但是我需要大约 n(n-1)/2 * .2.4.8 生成的随机数为 -1,我需要将它们展开。有什么办法可以做到这一点?我考虑过在填充数组时经常将其设置为 -1 并使用计数来跟踪但是没有办法确定那些 -1 分散在阵列中,这可能吗?

最佳答案

我能想到的最简单的方法是:

  • 用所需数量的 -1 填充数组的开头
  • 用随机数填充数组的其余部分
  • 打乱数组,可能使用 std::random_shuffle 或类似的东西。

完成此操作后,您可以确定您拥有正确数量的 -1,并且它们将随机分布。

关于c++ - 在二维数组中生成随机数时保证特定数字的 X 数量的任何方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33728074/

相关文章:

c++ - 对象指针参数不能使用与对象相同的类中的访问器方法

c++ - kdevelop 没有指定有效的可执行文件

c++ - 将 unique_ptr 作为引用参数或 const unique_ptr 引用传递

c - C 中通过函数实现随机数(初级程序员)

c++ - opengl 微小的渲染故障,需要帮助和提示

C++ 模板化未解析的外部对象

c++11 emplace_back 和 push_back 语法与结构

c++ - 如何使用 std::get 在元组上赋值?

PHP MySQL 从表中选择随机值

c - rand() 播种与 time() 问题