ts'Trm=.peermm 2#>:i.5'
0.05596607 50615808
ts'Treb=.cmbcomb 2#>:i.5'
0.046089115 50340608
Trm-:Treb
0
Trm-:&(/:~)Treb
1
ts'Trm=.peermm 2#>:i.6'
4.4741513 3.238033e9
ts'Treb=.cmbcomb 2#>:i.6'
3.879619 3.2212365e9
Trm-:&(/:~)Treb
1
R.E. Boss
(Add your info to http://www.jsoftware.com/jwiki/Community/Demographics )
> -----Original Message-----
> From: [email protected] [mailto:programming-
> [email protected]] On Behalf Of R.E. Boss
> Sent: zondag 26 april 2015 9:32
> To: [email protected]
> Subject: Re: [Jprogramming] Permutations with repeats (combinations?)
>
> 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
> )
>
> cmbcomb=: 3 :0
> a=. |.#/.~ y
> b=. |.(] <@comb"0 +/\) a
> c=. ; ([:,/ [,"1"1 _1 ]{"1"_ 1 [-.~"1 i.@(+&({:@$)))L:0/ b
> y {~ /:"1 c
> )
>
> cmbcomb 2#>:i.2
> 1 1 2 2
> 1 2 1 2
> 1 2 2 1
> 2 1 1 2
> 2 1 2 1
> 2 2 1 1
>
> the number of such permutations is determined by
> (!@(+/)% [:*/ !)x: 2#2
> 6
>
> (!@(+/)% [:*/ !)x: 5#2
> 113400
>
> ts'Treb=.cmbcomb 2#>:i.5'
> 0.043948924 50340608
>
> #Treb
> 113400
>
> ts'Tpj=.rperm2 2#>:i.5'
> 0.20252285 42215296
>
> #Tpj
> 113400
>
> Tpj-: Treb
> 0
>
> Tpj-:&(/:~) Treb
> 1
>
> (!@(+/)% [:*/ !)x: 6#2
> 7484400
>
> ts'rperm2 2#>:i.6'
> 15.864774 4.8486253e9
>
> ts'cmbcomb 2#>:i.6'
> 3.8703475 3.2212362e9
>
>
> R.E. Boss
>
> (Add your info to
> http://www.jsoftware.com/jwiki/Community/Demographics )
>
>
> > -----Original Message-----
> > From: [email protected]
> [mailto:programming-
> > [email protected]] On Behalf Of R.E. Boss
> > Sent: zondag 26 april 2015 8:59
> > To: [email protected]
> > Subject: Re: [Jprogramming] Permutations with repeats (combinations?)
> >
> >
> > peermm 'ababc'
> > |length error: peermm
> > | m=.,/(u*e)+"1/"_1(1-e) #inv"1/m
> >
> >
> > R.E. Boss
> >
> >
> > > -----Original Message-----
> > > From: [email protected]
> > [mailto:programming-
> > > [email protected]] 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
> > > <[email protected]> wrote:
> > > > this has wrong results
> > > >
> > > > peermm 1 1 ; 2 2 ; 1 1 ; 2 2 ;3
> > > >
> > > >
> > > >
> > > > ----- Original Message -----
> > > > From: Raul Miller <[email protected]>
> > > > To: Programming forum <[email protected]>
> > > > 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
> > > > <[email protected]> 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 <[email protected]>
> > > >> To: Programming forum <[email protected]>
> > > >> 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
> > > <[email protected]> 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
> <[email protected]>
> > > wrote:
> > > >>>
> > > >>>> On Fri, Apr 24, 2015 at 7:03 PM, Roger Hui
> > > <[email protected]>
> > > >>>> 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
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm