(More specifically - the argument to the A. monad is the indices which
perform a permutation.)

FYI,

-- 
Raul


On Fri, May 6, 2016 at 2:03 AM, Raul Miller <[email protected]> wrote:
> 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