我试图创建一个只包含0和1的3 x 2矩阵并打印出所有可能的组合,但它每行只能包含一个1和一个0,这些数字与之无关除此之外,它们都是独一无二的,就像打乒乓球或其他东西的赌桌一样:
0 1 1 0 0 1 0 1 0 1
0 1 1 0 0 1 1 0 1 0
0 1 1 0 1 0 1 0 0 1
以下是代码:
public class Program {
public static void main(String[] args) {
int[][] array = {{0,1}};
System.out.println("Array:");
for(int row = 0; row < array.length; row++){
for(int column = 0; column < array[row].length; column++){
System.out.print(array[row][column] + " ");
}
System.out.println();
}
}
}
这就是我所知道的。我不知道从哪里拿它。
答案 0 :(得分:1)
对于N-by-2矩阵的一般情况,将有2 ^ N个组合符合您的标准。请考虑每行只能处于两种状态:[0, 1]
或[1, 0]
。
从矩阵开始,每行都处于初始状态[0, 1]
。然后,对于每个数字X,其中0 <= X <1。 2 ^ N,将X转换为二进制。当M
位为1时,反转第M
行的值。
例如,二进制000对应于:
0 1
0 1
0 1
二进制101对应于:
1 0 (swapped)
0 1
1 0 (swapped)