Now we should ask Jon what he wants in this case: ]A=.3 2$1 1 1 2 1 1 1 1 1 2 1 1 ]B=.3 2$1 2 1 2 1 1 1 2 1 2 1 1
Should the result be: A *./@:e. B 1 or does he prefer: (/:~A)-:/:~B 0 ? (I agree the first looks quicker) Ben _ _______________________________________ From: [email protected] [[email protected]] on behalf of Dan Bron [[email protected]] Sent: Thursday, July 10, 2014 12:33 To: [email protected] Subject: Re: [Jprogramming] Comaring Arrays Sorting might be overkill (and/or a little expensive) for this situation. If A and B are the same shape (and they'd better be, or A is definitely not a permutation of B), then you really only need to know if all the items (rows) of A are also items (rows) of B. So let's just ask that: A e. B 1 1 1 1 A *./@:e. B 1 Now, if we needed slightly more information (and we're willing to pay for it), in particular, exactly how A is permuted from B, we could use i. instead of e. : A i. B 2 0 1 3 And from here, we can figure out exactly how far Jon would have had to go in his quest to check every possible permutation: A A.@:i. B 12 A C.@:i. B +-----+-+ |2 1 0|3| +-----+-+ Looks like about halfway ( (!#A)%2 ) . Not surprising. -Dan Please excuse typos; sent from a phone. > On Jul 10, 2014, at 4:17 AM, Ben Gorte - CITG <[email protected]> wrote: > > B=:4 4$2 3 0 1 3 2 1 0 1 0 3 2 0 0 0 0 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
