Its even faster, and handles text, but not boxed data one use case for boxes is keeping some items together as a group
;"1 rperm2 1 2 ; 1 2 ; 3 ;3 ; 3 3 3 1 2 1 2 3 3 3 1 2 3 1 2 3 3 3 1 2 1 2 3 1 2 3 1 2 3 3 1 2 3 3 1 2 3 1 2 1 2 3 3 1 2 3 3 1 2 3 1 2 3 3 3 1 2 1 2 3 1 2 3 3 1 2 1 2 3 3 3 ----- Original Message ----- From: Raul Miller <rauldmil...@gmail.com> To: Programming forum <programm...@jsoftware.com> Cc: Sent: Saturday, April 25, 2015 2:02 PM Subject: Re: [Jprogramming] Permutations with repeats (combinations?) My first attempt at implementing like that ran into a problem with mix-matched types in r for some cases, so I reworked the thing to support arguments of any type: comb=: 4 : 0 k=. i.>:d=.y-x z=. (d$<i.0 0),<i.1 0 for. i.x do. z=. k ,.&.> ,&.>/\. >:&.> z end. ; z ) peermm=:3 :0 arg=. (/: #@>)</.~i.~y n1=. 0 i.~1=#@> arg m=. (i.@! A. i.)n1 for_d.n1}.arg do. u=.{.s=.>d n=.i.(#s)+{:$m e=.n e."1 s comb&#n m=.,/(u*e)+"1/"_1 (1-e)#inv"1/m end. m{y ) I have no idea if this is actually faster. I'll let someone else worry about that. -- Raul On Sat, Apr 25, 2015 at 12:58 PM, Roger Hui <rogerhui.can...@gmail.com> wrote: > The peermm function can be made faster by doing the actual permutations of > those cells of </.~y having only a single element. > > > On Fri, Apr 24, 2015 at 10:46 PM, Raul Miller <rauldmil...@gmail.com> wrote: > >> On Fri, Apr 24, 2015 at 7:03 PM, Roger Hui <rogerhui.can...@gmail.com> >> wrote: >> > The details of implementing this algorithm are left as an exercise for >> the >> > reader. :-) >> >> Do I qualify as a reader? >> >> comb=: 4 : 0 >> k=. i.>:d=.y-x >> z=. (d$<i.0 0),<i.1 0 >> for. i.x do. z=. k ,.&.> ,&.>/\. >:&.> z end. >> ; z >> ) >> >> peermm=:3 :0 >> r=.i.1 0 >> for_d.</.~y do. >> u=.{.s=.>d >> n=.i.(#s)+{:$r >> e=.n e."1 s comb&#n >> r=.,/(u*e)+"1/"_1 (1-e)#inv"1/r >> end. >> ) >> >> peermm 1 1 2 2 >> 2 2 1 1 >> 2 1 2 1 >> 2 1 1 2 >> 1 2 2 1 >> 1 2 1 2 >> 1 1 2 2 >> >> -- >> Raul >> ---------------------------------------------------------------------- >> 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