我正在研究Java中的离散数学问题,我试图通过重复找到高达n的r置换。这意味着如果r = 4,n = 2,我们可以得到:
1 1 1 1
1 1 1 2
1 1 2 1
1 1 2 2等。
重复意味着1112是唯一的组合,但是1211不是因为1112已经包含3 1&1和2。
因此,我编写代码来遍历所有排列,每次迭代都存储在一个数组中。有一个" Master Array"我计划将其作为2D数组,其中第一维是所有唯一的数组或排列。因此,我所要做的就是创建新迭代的临时数组并使用Arrays.sort并将临时数组与主数组中的所有索引进行比较(这是有效的,因为1211,1112,2111和1121都排序为1112 in升序)
现在,我遇到的问题是将这些数组存储到2D数组Masterkey中
我试过了:
Masterkey [count] = array;,但是当我打印(Masterkey [count] [0])时,只输出一个整数而不是数组。 (数组是最新的排列)
Masterkey [count] = Arrays.copyOf(array,array.length);再次打印一个整数而不是数组。
Masterkey [count] = array.clone();,也打印出一个整数
我可能会忽略一些简单的事情,但我只是在努力将数组存储在Masterkey中。
答案 0 :(得分:1)
Masterkey[count][0]
将始终打印一个整数,因为Masterkey[count] = array
。因此Masterkey[count][0]
与array[0]
相同。但是,如果您将array
分配给Masterkey[count][0]
,则会打印数组。