Let's say we have a vector of length 4, where every element can be a number from 0 to 9. For example: <1, 8, 0, 3>
Instead of simply looping over all 10^4 possible vectors, I want to loop in an specific order. So I want to start from <0, 0, 0, 0>
, go to <1, 0, 0, 0>
, then:
<2, 0, 0, 0>, <3, 0, 0, 0>, ..., <9, 0, 0, 0>, <0, 1, 0, 0>
and so on (notice the order in the last two). I cannot think of a way to write this for variable vector length.
Let's say we are in the ith iteration, having the i
th vector in the lexicographic order I mentioned above. Having the i
th vector is necessary for doing some process in the (i+1)
th vector. This scheme saves compute over randomly looping over all possible vectors.
I haven't really found a non-brute force and memory efficient way to solve this problem. Specially considering that I should be able to support variable vector lengths and different ranges of numbers for entries.