NaN is repeatable
(]-:/:~permNF~permN) 200$1 |NaN error: permC | (]-:/:~permNF~permN)200$1 Вс, 08 май 2016, jprogramming написал(а): > If you rerun the same line, does it return 1? I don't get the error, but its > operating on random numbers, so it could be rare. > > permNF definition is a single line, and relies on the 2 definitions above it. > > > > ----- Original Message ----- > From: Raul Miller <[email protected]> > To: Programming forum <[email protected]> > Sent: Sunday, May 8, 2016 7:44 AM > Subject: Re: [Jprogramming] permutation and combination numbers (with repeat) > > I get: > > (] -: /:~ permNF~ permN) ? 200 $ 60 > |NaN error: permNF > > Can you reproduce this error? > > FYI, > > -- > Raul > > > On Sat, May 7, 2016 at 10:03 PM, 'Pascal Jasmin' via Programming > <[email protected]> wrote: > > faster version works with gaps. permNF is decoder from permutaion number > > > > > > del1 =: i.~ ({. , >:@[ }. ]) ] > > permC =: # %&(x:@:(*/))&:! #/.~ > > > > permNF =: 2 {:: (] (((0 {:: [) - ] * (1 {:: [) ([ i. {~) (0 {:: [) <.@% ]) > > ; [ ((] ,~ 2 {:: [) ;~ ] del1 1 {:: [) (1 {:: [) {~ (0 {:: [) <.@% ]) 1 > > (permC % #)@{:: ])^:(0 < 1 #@{:: ])^:_@:(a:,~ ;) f. > > > > > > permN =: +/@:(((permC % #) * 0 i.~ /:)\.) > > > > > > > > (] -: /:~ permNF~ permN) ? 200 $ 60 > > > > ----- Original Message ----- > > From: 'Pascal Jasmin' via Programming <[email protected]> > > To: Programming Forum <[email protected]> > > Sent: Thursday, May 5, 2016 5:58 PM > > Subject: [Jprogramming] permutation and combination numbers (with repeat) > > > > Some routines to calculate permutation and combination numbers, similar to > > A. (but allows permutations with repeat) > > > > del1 =: i.~ ({. , >:@[ }. ]) ] > > > > combN =: (0:`((<:@[ - {.@]) $: >:@{.@] -~ }.@])@.(0 < #@]) + 0:`(<:@#@] > > +/@:! <:@[ - i.@{.@])@.(0 < {.@]) ) > > > > combNF =: 3 : 'a =. 1 { 0 {:: y label_. (i.a) + +/\ 1 {:: ([ (] ;~ [ - 1 > > ,~ _2 >:@{ ]) }:@] , {:@] ([ ({.@] ,(- {:)) ] (] , {~) 1 i:~ >:) (0 , ] > > (+/\)@:! ( a i.@:-~ [) -~ [)/@:<:@[ )&>/^: (<:a) y'@:; > > > > permC =: # %&(x:@:(*/))&:! #/.~ > > > > permN1 =: ((0:`( (] - <./)@:({.@] del1 [) $: (] - <./)@:}.@] )@.(1 < #@])) > > + (permC % #)@] * [ i. {.@] ) f. > > > > permN =: /:~ permN1 ] > > > > 100x combN 15 25 35 45 55 65 85 > > 11284989655 > > > > 100 7 combNF 11284989655x > > 15 25 35 45 55 65 85 > > > > permN 1 0 0 2 1 3 3 1 > > 434 > > > > haven't done the reverse to permN yet, but these routines combined can be > > used to compress any list into 2 numbers (with a key). You can google for > > combinatorial number base, and there is A., but not sure A. has been done > > for permutations with repeats. Which produces smaller numbers than A. does > > (due to fewer underlying permutations). > > ---------------------------------------------------------------------- > > 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 -- regards, ==================================================== GPG key 1024D/4434BAB3 2008-08-24 gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
