开发者

Finding all possible unique arrays within a matrix

When given a square ma开发者_如何学Gotrix, what would be the best way to find all of the possible arrays within it without using more than one element from any row/column in each array?

For example, in a matrix like so:

0 2 3 
1 2 3 
1 2 0

It would then go through it like this:

Finding all possible unique arrays within a matrix

And then it would output the following list of arrays:

123
123
023
123
120
020


You can directly map each such array to a permutation of the digits (0 .. size-1). To show you how this works, the permutation (2,1,0) maps to the 3 coordinates (2,0), (1,1), (0,2). The 6 examples you gave are

(2,1,0)  (1,2,0)  (0,2,1)

(2,0,1)  (1,0,2)  (0,1,2)

To explain the mapping, lets take the first permutation (2,1,0) --> (2,0), (1,1), (0,2). Then, the values you want to use are array[2][0], array[1][1], array[0][2]

So now the question is how to generate each permutation. There are a few algorithms, one of which is implemented in java here: http://www.merriampark.com/perm.htm

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜