It's not clear to me whether "no sorting required" is a meaningful criteria. Sorting might very well be faster (depending on the size of the data structures you are working with).
FYI, -- Raul On 7/10/14, Ben Gorte - CITG <[email protected]> wrote: > In that case Dan's solution is probably optimal - no sorting required. > ________________________________________ > From: [email protected] > [[email protected]] on behalf of Jon Hough > [[email protected]] > Sent: Thursday, July 10, 2014 14:55 > To: [email protected] > Subject: Re: [Jprogramming] Comaring Arrays > > Duplicate rows, other than 0 0 0 0 sjould never occur. If they did, there > would be a big problem. > 0 0 0 0 occur when J needs filler to pad out arrays. > > --- Original Message --- > > From: "Ben Gorte - CITG" <[email protected]> > Sent: July 10, 2014 9:51 PM > To: [email protected] > Subject: Re: [Jprogramming] Comaring Arrays > > Hi Jon, > > Dan and I were wondering: > > 1. whether your matrices would be allowed to have duplicate rows > 2. and if they are, whether such duplicate rows should occur in both > matrices equally often, for them to be equivalent > > Ben > ________________________________________ > From: [email protected] > [[email protected]] on behalf of Jon Hough > [[email protected]] > Sent: Thursday, July 10, 2014 14:16 > To: [email protected] > Subject: Re: [Jprogramming] Comaring Arrays > > I away from my computer at the moment. When I get back I will show you my > code. > The gist is I am making a simple permutation group theory script(i am not > talking about simple groups, i mean a simple script). > Anyway, what I have so far is trying to conjugate a group with itself, so i > can nub out the resulting duplicates and get all the conjugacy classes of > the group. > > --- Original Message --- > > From: "Dan Bron" <[email protected]> > Sent: July 10, 2014 8:38 PM > To: [email protected] > Subject: Re: [Jprogramming] Comaring Arrays > > Good point. We could fix this up by asking an additional question: are the > items of A unique? There's a million ways to ask that, but maybe we're in a > cutesy mood today: > > e. *./@:*. ~:@:] > > Though with the ~:, I'm not sure this would have any performance advantage > over sorting. Maybe we should go back to i. : > > #@:] (e. < *./@:~:@:]) i. > > That is, look up A in B and tell me whether all elements are unique and that > there are no missing elements ((#A) e. A i. B). > > -Dan > > Please excuse typos; sent from a phone. > >> On Jul 10, 2014, at 6:48 AM, Ben Gorte - CITG <[email protected]> >> wrote: >> >> 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 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
