Sort will produce the same result for both arrays.

   ]A=:4 4$3 2 1 0 1 0 3 2 2 3 0 1 0 0 0 0
3 2 1 0
1 0 3 2
2 3 0 1
0 0 0 0
   ]B=:4 4$2 3 0 1 3 2 1 0 1 0 3 2 0 0 0 0
2 3 0 1
3 2 1 0
1 0 3 2
0 0 0 0
   (/:~A) -: /:~B
1

Ben
________________________________________
From: [email protected] 
[[email protected]] on behalf of Jon Hough 
[[email protected]]
Sent: Thursday, July 10, 2014 10:07
To: [email protected]
Subject: [Jprogramming] Comaring Arrays

The following two 4x4 arrays are rearrangements of each other's rows.


3 2 1 0



1 0 3 2



2 3 0 1



0 0 0 0








2 3 0 1



3 2 1 0



1 0 3 2



0 0 0 0


I would like to know a way to acknowledge two arrays as being rearrangements of 
each other. Eventually my goal is to compare long lists of such arrays and nub 
out duplicates - duplicates being rearrangements.


The only way I can think to do this is to cycle through all permutations of the 
row of one of the arrays and test for equality with the other array, using A. . 
Of course, there are 24 permutations to test for 4x4 arrays, but obviously for 
bigger arrays things get worse.


Is there a faster way to check two arrays are (ignoring row permutations) 
equivalent?





----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to