peermm 'ababc' |length error: peermm | m=.,/(u*e)+"1/"_1(1-e) #inv"1/m
R.E. Boss > -----Original Message----- > From: programming-boun...@forums.jsoftware.com [mailto:programming- > boun...@forums.jsoftware.com] On Behalf Of Raul Miller > Sent: zondag 26 april 2015 3:22 > To: Programming forum > Subject: Re: [Jprogramming] Permutations with repeats (combinations?) > > That's an error on my part. > > It' not unique to boxed data, you can see the same flaw with: > > peermm 'ababc' > > Basically, I did not spend enough time exploring the boundaries > between the two abstractions I was using. > > I think this fixes that problem: > > 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 > Y=. ;(/: #@>)</.~y > 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 > ) > > There might be a better (more concise and faster) way of setting this up? > > Thanks, > > -- > Raul > > > On Sat, Apr 25, 2015 at 8:29 PM, 'Pascal Jasmin' via Programming > <programm...@jsoftware.com> wrote: > > this has wrong results > > > > peermm 1 1 ; 2 2 ; 1 1 ; 2 2 ;3 > > > > > > > > ----- Original Message ----- > > From: Raul Miller <rauldmil...@gmail.com> > > To: Programming forum <programm...@jsoftware.com> > > Cc: > > Sent: Saturday, April 25, 2015 8:24 PM > > Subject: Re: [Jprogramming] Permutations with repeats (combinations?) > > > > What problem does it have with boxed data? (It worked fine on boxed > > data when I tested it that way.) > > > > Thanks, > > > > -- > > Raul > > > > On Sat, Apr 25, 2015 at 8:05 PM, 'Pascal Jasmin' via Programming > > <programm...@jsoftware.com> wrote: > >> 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 > > ---------------------------------------------------------------------- > > 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