Binary matrix

1. Apr 30, 2007

jetoso

I want to build a binary matrix (with 1 and 0 entries) with all possible combinations, say for example if n is the number of entries of one row of the matrix, then 2^n is the total number of different entries in the matrix.

For instance, for n=3, 2^n = 8, so we would have the following matrix
[ 1 0 0
0 1 0
0 0 1
1 1 0
1 0 1
0 1 1
1 1 1
0 0 0 ]

I am writing a C++ code but I have not figured out how to make it. Any suggestions?

Last edited by a moderator: May 2, 2007
2. May 1, 2007

Jimmy Snyder

Do you plan to go beyond n = 32? If so, I don't think the project is practical. If not, then you can simply loop through the integers from 0 to (2^n - 1) and print out their bits. I haven't tried this code, but it might work. If the order of the lines matters, then you can manipulate things as needed.

Code (Text):

// print the bit patterns for the first 2^n integers
for (int wRow = 0; wRow < (2^n); ++wRow)
{
// make a copy of the row number
int wBitMap = wRow;

// for each bit
for (int wBit = 0; wBit < n; ++wBit)
{
// display the leftmost bit along with a space character
cout << wBitMap & 1 << " ";
// and shift a new bit into place
wBitMap /= 2;
}
cout << endl;
}