If I fill numbers from 1 to 4 in a 2 by 2 matrix, there are 16 possible combinations. What I want to do is store values in an array of size 24 corresponding to each matrix. So given a
2 by 2 matrix, I want a efficient indexing method to index into the array directly.( I dont want comparing all 4 elements for each of 16 positions). Something similar to bit vector ? but not able to figure out how?
I want it for a 4 by 4 matrix also filling from 1 to 9
If I fill numbers from 1 to 4 in a 2 by 2 matrix,
Share
to clarify: you’re looking for an efficient hash function for 2×2 matrices. you want to use the results of the hash function to compare matrices to see if they’re the same.
first, lets assume you actually want the numbers 0 to 3 instead of 1 to 4 – this makes it easier, and is more computer-sciency. Next, 16 is not right. there are 24 possible permutations of the numbers 0-3. There are 4^4 = 256 possible strings of length 4 that use a four-letter alphabet (you can repeat already-used numbers).
either one is trivial to encode into a single byte. Let the first 2 bits represent the (0,0) position, the next 2 bits represent (0,1), and so forth. Than, to hash your 2×2 matrix, simply do:
random example: the number 54 in binary is 00110110 which represents a matrix like: