gpt4 book ai didi

c - 数组拼图 :generating all possible combinations

转载 作者:行者123 更新时间:2023-11-30 16:03:42 28 4
gpt4 key购买 nike

我正在做一个项目,这部分对我来说非常重要。我会尽力尽可能清楚。

假设我们有一个全为 0 的 mxn 矩阵,我需要生成数组的所有可能组合,其中一行中只有一个元素初始化为 1,而该行中的所有其他元素都是 0。同样,在所有行中,只有一个元素应该为 1。例如:采用 3x2 矩阵,输出应如下:

[1 0,1 0,1 0], [1 0, 1 0,0 1], [1 0,0 1,1 0], [1 0, 0 1, 0 1], [0 1 , 1 0,1 0], [0 1, 1 0, 0 1], [0 1, 0 1, 1 0], [0 1, 0 1, 0 1]

方括号内的值是一个 3x2 矩阵,每行用逗号分隔。所以基本上,一个 mxn 矩阵将有 n 次方 m 种组合。任何人谁能想到任何可能的方法来解决这个问题,请发布它,这非常重要。提前致谢

最佳答案

因为这听起来像是家庭作业,所以我不会为您提供完整的解决方案,而是向您提供一些正确方向的步骤。让我们从 3x2 矩阵开始。我们可以使用嵌套 for 循环来解决这个问题:

int row0, row1, row2;
for(row0=0; row0<2; ++row0) {
matrix[0][row0] = 1;
for(row1=0; row1<2; ++row1) {
matrix[1][row1] = 1;
for(row2=0; row2<2; ++row2) {
matrix[2][row2] = 1;
print_matrix(matrix);
matrix[2][row2] = 0;
}
matrix[1][row1] = 0;
}
matrix[0][row0] = 0;
}

当然,这不是一个非常通用的解决方案。将其更改为 3xm 矩阵很容易(只需将 row#<2 替换为 row#<m-1 ),但显然这不适用于 nxm 矩阵。每次我们将 n 加一,我们就需要添加另一个 for 循环。

我让您自行决定如何摆脱嵌套的 for 循环并使用其他一些技术来概括它。

关于c - 数组拼图 :generating all possible combinations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3814525/

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