hWiez
hWiez

Reputation: 1

How do I generate all possible combinations of a 3 x 2 matrix?

I'm stuck trying to create a 3 x 2 matrix that only contains 0 and 1 and prints out all the possible combinations, BUT it can only contain one 1 and one 0 for each row, the numbers have nothing to do with each other than that they are unique, much like a betting table for say tennis or something:

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

Here's the code:

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();
        }
    }
} 

This is what I got right know. I don't know where to take it from here.

Upvotes: 0

Views: 581

Answers (1)

Mr. Llama
Mr. Llama

Reputation: 20899

For a general case of an N-by-2 matrix there will be 2^N combinations that meet your criteria. Consider that each row can only be in two states: [0, 1], or [1, 0].

Start with a matrix where every row is in the initial state [0, 1]. Then, for every number X where 0 <= X < 2^N, convert X to binary. When the Mth bit is 1, reverse the Mth row's values.

For example, binary 000 would correspond to:

0 1
0 1
0 1

While binary 101 would correspond to:

1 0 (swapped)
0 1
1 0 (swapped)

Upvotes: 1

Related Questions