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

Reply via email to