更改数组中的列
Changing columns in array
我在交换时遇到问题 columns.I 有 int[n][n] matrix.Next 我有列表(大小为 n!)和数组(长度为 n),它包括所有排列数字 1,2,...,N([2,1,3,4,..,n][1,4,3,2,..,n]...等))。对于此列表中的每个排列,我想制作具有不同列顺序的特定矩阵。这是我的代码,它不起作用:
int[][] matrix={{1,2,3},{4,5,6},{7,8,9}};
Arraylist<int[][]> matrices=new Arraylist<>();
for (int[] permute : permutations)
{
int[][] newMatrix=matrix;
for (int i = 0; i < n; i++)
{
if (permute[i] == i + 1)
continue;
}
newMatrix=swapColumn(newMatrix, i, permute[i] - 1);
}
matrices.add(newMatrix.clone());
}
方法 swapColumn 有效 correctly.Condition 是因为交换了同一列。当我打印矩阵时,它打印 n!* 原始矩阵
谁能帮帮我?
- 第一件事
这甚至无法编译,因为您在循环范围外使用 newMatrix=swapColumn(newMatrix, i, permute[i] - 1);
并且 i 没有在循环外声明
for (int i = 0; i < n; i++)
{
if (permute[i] == i + 1)
continue;
}`
第二件事 :
函数 swapColumn
它的作用是将列源复制到列目标,这样列目标的原始值就会丢失,因此当您需要将它放在其他列中时,您不会拥有这一切你将拥有的是新的影响值
第三件事
matrices.add(newMatrix.clone())
;超出了置换循环的范围,因此会引发编译错误,因为 newMatix 是在循环范围内声明的
我在交换时遇到问题 columns.I 有 int[n][n] matrix.Next 我有列表(大小为 n!)和数组(长度为 n),它包括所有排列数字 1,2,...,N([2,1,3,4,..,n][1,4,3,2,..,n]...等))。对于此列表中的每个排列,我想制作具有不同列顺序的特定矩阵。这是我的代码,它不起作用:
int[][] matrix={{1,2,3},{4,5,6},{7,8,9}};
Arraylist<int[][]> matrices=new Arraylist<>();
for (int[] permute : permutations)
{
int[][] newMatrix=matrix;
for (int i = 0; i < n; i++)
{
if (permute[i] == i + 1)
continue;
}
newMatrix=swapColumn(newMatrix, i, permute[i] - 1);
}
matrices.add(newMatrix.clone());
}
方法 swapColumn 有效 correctly.Condition 是因为交换了同一列。当我打印矩阵时,它打印 n!* 原始矩阵 谁能帮帮我?
- 第一件事
这甚至无法编译,因为您在循环范围外使用 newMatrix=swapColumn(newMatrix, i, permute[i] - 1);
并且 i 没有在循环外声明
for (int i = 0; i < n; i++)
{
if (permute[i] == i + 1)
continue;
}`
第二件事 :
函数
swapColumn
它的作用是将列源复制到列目标,这样列目标的原始值就会丢失,因此当您需要将它放在其他列中时,您不会拥有这一切你将拥有的是新的影响值第三件事
matrices.add(newMatrix.clone())
;超出了置换循环的范围,因此会引发编译错误,因为 newMatix 是在循环范围内声明的