On Dec 7, 2017, at 7:48 AM, Joe Bogner <[email protected]> wrote:
> 
> I'm still working on day 6 and I'm looking for a tip on a specific part I'm
> trying (not the whole solution)
> 
> I'd like to define a verb that cycles through a list N times and adds 1 to
> each element
> 
> 3 addCycle (4#0) -: 1 1 1 0
> 
> 4 addCycle (4#0) -: 1 1 1 1
> 
> 5 addCycle (4#0) -: 2 1 1 1
> 
> 6 addCycle (4#0) -: 2 2 1 1
> 
> 7 addCycle (4#0) -: 2 2 2 1
> 
> I was initially messing around with variants of this (clearly wrong)
> 
> ((1 (0) } ]) + |.)^:3 (0 0 0 0)
> 
> I also wonder if there's some antibase pattern or odometer solution


I also got hung up on this part and haven’t solved it yet.

My thought was to use copy to generate a bunch of 1s, up to the size of the 
number of buckets, and fill in with 0s beyond the number in the bucket, and 
then do iterated sums. All this under a rotation for the location of the 
number. In my mind it would look like this:

3 |. 0 2 0 0 = 0 0 2 0
   0 0 2 0 + 1 1 1 1 = 1 1 3 1   NB. 4 gen 7 = 1 1 1 1 ; 3
   1 1 3 1 + 1 1 1 0 = 2 2 4 1   NB. 4 gen 3 = 1 1 1 1 ; 0, the second value 
being zero terminates the loop
_3 |. 2 2 4 1 = 2 4 1 2

This was the best I could imagine but I don’t have any idea if it’s reasonable 
or less work than just going around item-by-item, and I haven’t coded it up yet.

-- 
Daniel Lyons




----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to