用非重复的随机数填充 2D 数组
Fill a 2D array with non-repeating random numbers
我目前正在尝试用 1-16 的 16 个值填充 2D 数组。我想用非重复的随机值填充数组。
例如,如果我有一个数组int array[4][4]
我将如何通过填充数组的循环,同时检查以确保另一个相同的随机值没有放置在数组中的另一个位置?
int array[4][4];
int* p = &array[0][0];
std::iota(p, p+16, 1);
std::random_device r;
std::default_random_engine g(r());
std::shuffle(p, p+16, g);
使用 int randomValue = rand(( % 16 + 1; 并将其存储在另一个辅助 2D 数组中以进行检查。 你应该完成了。
创建一个一维数组,比如大小为 16 的 arr
,用 1
到 16
的值填充它。在arr
上使用随机播放。遍历数组以填充二维数组,例如arr2
。
for(int i = 0; i < 16; i++){
arr2[i/4][i%4] = arr[i];
}
相关文章:
- 如何使用用户输入在C++中正确填充2D数组
- 创建整数的 2D 数组,该数组将使用两个函数用随机数填充矩阵.我做错了什么?
- 用空格填充 2D 数组(从文件输入)
- 填充包含碎屑的 2d 矢量
- C++初始化并用变量填充 2D 数组
- 填充另一个 2D 数组后,堆已损坏
- parallel_for lambda 函数填充 2D 向量后出错
- 填充 2D 阵列
- 如何有效地用枚举填充 2D std::数组
- C++ 读取文本文件以填充 2D 数组
- 从文件填充 2D 数组
- 在C 中填充2D矢量
- 用非重复的随机数填充 2D 数组
- 如何用每种可能的组合填充 2D 数组?C++逻辑
- 填充 2D 动态数组时"无法读取内存"
- 无法用文件中的sscanf_s填充 2D 数组
- C++ 用结构填充 2D 矢量
- c++11 使用 std::fill 来填充 2D 动态分配的数组
- C++填充2D阵列
- 如何用0和1填充2D数组,其中第N行的每个第N个元素都是1,其余元素是0