C/C++ Creating a Binary Matrix with C++ Code

AI Thread Summary
The discussion centers on generating a binary matrix with all possible combinations of 1s and 0s for a given number of entries, n. The total combinations are calculated as 2^n. For example, with n=3, the matrix includes eight different rows representing all combinations of three binary digits. A C++ code snippet is provided to print these combinations by looping through integers from 0 to (2^n - 1) and displaying their binary representation. The code uses bitwise operations to extract and print each bit. There is a caution regarding practicality for n values beyond 32 due to potential performance issues. If the order of rows is significant, further manipulation of the output may be necessary.
jetoso
Messages
73
Reaction score
0
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:
Technology news on Phys.org
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:
// 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;
}
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I had a Microsoft Technical interview this past Friday, the question I was asked was this : How do you find the middle value for a dataset that is too big to fit in RAM? I was not able to figure this out during the interview, but I have been look in this all weekend and I read something online that said it can be done at O(N) using something called the counting sort histogram algorithm ( I did not learn that in my advanced data structures and algorithms class). I have watched some youtube...
Back
Top