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