[Jprogramming] Advent of code, Day 5 (spoilers probable)

'Mike Day' via Programming programming at jsoftware.com
Thu Dec 7 20:30:49 UTC 2017


Yes,  but that's because I'd put it there as a counter!  Having done 
so,  I avoided

accumulating all those unneeded rows - the last row had what i needed.

It would be nice to just be able to use ^:_ without explicitly using 
either a global, as

you suggested earlier,  or an embedded counter in the state variable,  
which is what

I used for qjump(n).   The global option is marginally simpler, provided 
one can swallow

one's pride, and not avoid globals!

Thanks,

Mike


On 07/12/2017 19:34, Henry Rich wrote:
> It looks like the function adds 1 to exactly one atom in the list on 
> every iteration, so
>
> -&:(+/)&0 _2 0 0
>
> applied to the list would tell you how many times you went through.
>
> Henry Rich
>
> On 12/7/2017 2:10 PM, 'Mike Day' via Programming wrote:
>> Thanks - I was hoping for something hiding within the ^: mechanism 
>> rather
>>
>> than external,  but it's a better option that what qjumpn does, which 
>> is add
>>
>> the count to the state variable.  The latter keeps it local,  at the 
>> expense of
>>
>> complicating the function a bit.
>>
>> Cheers,
>>
>> Mike
>>
>>
>>
>> On 07/12/2017 17:12, Henry Rich wrote:
>>> Increment a global variable.
>>>
>>> Henry Rich
>>>
>>> On 12/7/2017 11:15 AM, 'Mike Day' via Programming wrote:
>>>> But as you've got into the thread, Henry,  do you see any way of 
>>>> finding the number
>>>> of executions of u in u^:_ or u^:a: without keeping all the 
>>>> intermediate results?
>>>>
>>>> AOC 5 requires us to count the number of cycles,  but we might as 
>>>> well discard the
>>>> intermediates,  as they are not required.
>>>>
>>>> eg,  for this problem I have a dyadic function qjumpn where x is 
>>>> the right argument
>>>> for ^:   .
>>>>
>>>>     _ qjumpn 0 3 0 1 _3    NB. just return the final value
>>>> 5 5 2 5 0 1 _2
>>>>
>>>>
>>>>    a: qjumpn 0 3 0 1 _3 NB. return all values
>>>>
>>>> 0 0 0 3 0 1 _3
>>>>
>>>> 0 1 1 3 0 1 _3
>>>>
>>>> 1 2 2 3 0 1 _3
>>>>
>>>> 4 3 2 4 0 1 _3
>>>>
>>>> 1 4 2 4 0 1 _2
>>>>
>>>> 5 5 2 5 0 1 _2
>>>>
>>>>
>>>> Now,  as I'd taken the trouble to embed the count at index 1 in 
>>>> each row,
>>>> the _ argument is adequate here,  but we are really interested in 
>>>> the last 5
>>>> items, in this example.
>>>>
>>>> NB. only (?) way to count assuming it's not returned in the final row
>>>>
>>>>    <:@#a: qjumpn seq
>>>>
>>>> 5
>>>>
>>>>
>>>> In the actual problem presented in AOC 5,  a considerable amount of 
>>>> memory,
>>>> around 4.2 GB for "part 1" on my Windows laptop,  is consumed using 
>>>> the
>>>> ^:a: approach.   (It would of course use slightly less memory if it 
>>>> didn't include
>>>> that count element!)
>>>>
>>>> Thanks,
>>>>
>>>> Mike
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On 07/12/2017 13:25, Henry Rich wrote:
>>>>> Yes, I was.  Serves me right for jumping into the middle of a 
>>>>> thread. Sorry.
>>>>>
>>>>> Henry Rich
>>>>>
>>>>> On 12/6/2017 10:18 PM, Raul Miller wrote:
>>>>>> Right - it's not a bug in J -- it's a bug in the sentence where 
>>>>>> its result
>>>>>> conflicts with the advent of code day 5 spec.
>>>>>>
>>>>>> I only just now realized that Henry must have thought I was 
>>>>>> talking about a
>>>>>> J engine bug - but there's not one of those here.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>
>>>>>
>>>>> ---
>>>>> This email has been checked for viruses by AVG.
>>>>> http://www.avg.com
>>>>>
>>>>> ---------------------------------------------------------------------- 
>>>>>
>>>>> For information about J forums see 
>>>>> http://www.jsoftware.com/forums.htm
>>>>
>>>>
>>>>
>>>> ---
>>>> This email has been checked for viruses by Avast antivirus software.
>>>> https://www.avast.com/antivirus
>>>> ----------------------------------------------------------------------
>>>> 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



More information about the Programming mailing list