I think it's a property of the domain (which is permutations). -- Raul
On Fri, May 6, 2016 at 1:54 AM, 'Pascal Jasmin' via Programming <[email protected]> wrote: > It is IMO quirkiness in A. rather than a mathematical principle (I could be > very wrong) for how it fills in missing items as leading items. > > It would IMO be more intuitive for it to fill in missing items to the right > rather than left. Basically that would result in "the first permutation that > starts with y", though this behaviour is easier to engage intentionally. > > > permN does not use any implied fillins. > > > > > ----- Original Message ----- > From: Raul Miller <[email protected]> > To: Programming forum <[email protected]> > Sent: Friday, May 6, 2016 1:43 AM > Subject: Re: [Jprogramming] permutation and combination numbers (with repeat) > > Note that A. has a property which permN does not: > > each sequence of distinct nonnegative integers of a given length which > contains a 0 has a different index. > > A. 1 0 > 1 > A. 2 0 > 3 > A. 0 2 > 2 > A. 9 0 > 409113 > > permN 1 0 > 1 > permN 2 0 > 1 > permN 0 2 > 0 > permN 9 0 > 1 > > FYI, > > -- > Raul > > On Fri, May 6, 2016 at 12:59 AM, 'Pascal Jasmin' via Programming > <[email protected]> wrote: >> The similarity to A. is that >> >> A. 2 3 1 0 is relative to 0 1 2 3 >> >> A. 2 3 1 0 >> 17 >> 17 A. 0 1 2 3 >> 2 3 1 0 >> >> >> >> so, >> >> permN 2 2 1 011 >> >> >> will have reverse F >> >> >> 11 F 0 1 2 2 NB. 0 1 2 2 is sorted version of original >> 2 2 1 0 >> 11 F 0 1 1 2 >> 2 1 1 0 >> >> >> >> ----- Original Message ----- >> From: Raul Miller <[email protected]> >> To: Programming forum <[email protected]> >> Sent: Thursday, May 5, 2016 9:44 PM >> Subject: Re: [Jprogramming] permutation and combination numbers (with repeat) >> >> A. allows adding a constant to the vector, and it allows preceding the >> vector with (,~ (-.~ i.@(>./))), and any suffix of that which does not >> eliminate the original values of the vector. (And, where the vector >> can be formed using either of these mechanisms, it also allows >> dropping certain prefixes of the vector.) >> >> But when you introduce repetitions, it seems to me that you need to >> distinguish between different repetitions of the same values. And, in >> some cases you do make that distinction, but in other cases you do >> not. So I am trying to understand what it is that is consistent about >> your implementation here. >> >> For example, let's consider these: >> >> permN 2 2 1 0 >> 11 >> permN 2 1 1 0 >> 11 >> permN 2 1 0 0 >> 11 >> >> What is it that's being sorted here? >> >> It does not seem that you are sorting the values: >> >> /: 2 2 1 0 >> 3 2 0 1 >> /: 2 1 1 0 >> 3 1 2 0 >> /: 2 1 0 0 >> 2 3 1 0 >> >> You might be using downgrade? >> \: 2 2 1 0 >> 0 1 2 3 >> \: 2 1 1 0 >> 0 1 2 3 >> \: 2 1 0 0 >> 0 1 2 3 >> >> But, no, that does not hold for a different example: >> >> \: 0 0 1 0 >> 2 0 1 3 >> \: 0 1 0 1 >> 1 3 0 2 >> \: 1 0 1 1 >> 0 2 3 1 >> permN 0 0 1 0 >> 1 >> permN 0 1 0 1 >> 1 >> permN 1 0 1 1 >> 1 >> >> Put differently, what does "relative to the sorted permutation (with >> repetitions) list of the argument" mean? >> >> A. does not deal with sorted permutations with repetitions, so simply >> referencing A. does not actually mean anything to me. >> >> A. 0 0 >> |index error >> >> Thanks, >> >> -- >> Raul >> >> On Thu, May 5, 2016 at 7:29 PM, 'Pascal Jasmin' via Programming >> <[email protected]> wrote: >>> Because its relative to the sorted permutation (with repetitions) list of >>> the argument. A. does this as well. >>> >>> >>> A. 1 0 >>> 1 >>> A. 0 2 1 >>> 1 >>> >>> >>> >>> >>> ----- Original Message ----- >>> From: Raul Miller <[email protected]> >>> To: Programming forum <[email protected]> >>> Sent: Thursday, May 5, 2016 7:25 PM >>> Subject: Re: [Jprogramming] permutation and combination numbers (with >>> repeat) >>> >>> I am not understanding, still. So let's try a different example: >>> >>> Why are these equal? >>> >>> permN 0 0 1 0 >>> 1 >>> permN 0 1 0 1 >>> 1 >>> permN 1 0 1 1 >>> 1 >>> >>> Thanks, >>> >>> -- >>> Raul >>> >>> On Thu, May 5, 2016 at 6:20 PM, 'Pascal Jasmin' via Programming >>> <[email protected]> wrote: >>>> Its relative to the sorted order of the input >>>> >>>> rp1 =: (] (] <@; $:^:(1<#)@del1~)"1 0 ~.@]) >>>> untreep =: (({.,"0 1 $:^:(1<L.)@}.)&>) >>>> rperm6 =: (a: ;"1@(]#~ -.@e."1) ,&.:(<"1)@:untreep@:rp1) >>>> >>>> rperm6 0 0 1 >>>> 0 0 1 >>>> 0 1 0 >>>> 1 0 0 >>>> >>>> >>>> rperm6 0 1 1 >>>> 0 1 1 >>>> 1 0 1 >>>> 1 1 0 >>>> >>>> >>>> >>>> in both cases, the 0 index is the sorted order >>>> >>>> permN 1 0 1 >>>> 1 >>>> permN 1 0 0 >>>> 2 >>>> >>>> the index in their respective permutation lists. >>>> >>>> ----- Original Message ----- >>>> From: Raul Miller <[email protected]> >>>> To: Programming forum <[email protected]> >>>> Sent: Thursday, May 5, 2016 6:13 PM >>>> Subject: Re: [Jprogramming] permutation and combination numbers (with >>>> repeat) >>>> >>>> Why are these two results equal? >>>> >>>> permN 0 0 1 >>>> 0 >>>> permN 0 1 1 >>>> 0 >>>> >>>> Thanks, >>>> >>>> -- >>>> Raul >>>> >>>> >>>> On Thu, May 5, 2016 at 5:58 PM, 'Pascal Jasmin' via Programming >>>> <[email protected]> wrote: >>>>> 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 >>> ---------------------------------------------------------------------- >>> 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
