Hi Ric, I seriously underestimated J's extended integer type. Turns out the following is fast and correct:
T =: 100 50 $ (fread < jpath '~/PE/13.xyz') -. (LF, CR) S =: < "1 T ,"1 'x' R =: > ". each S +/ R Thanks for your comment. Lafras On Tue, 23 May 2017 at 00:11 Ric Sherlock <[email protected]> wrote: > While your approach is certainly achieving your objective of helping you > learn the ins and outs of J, it doesn't seem to be the simplest or quickest > way to solve the PE13 problem. > > Maybe worthwhile taking a step back? > > On Mon, May 22, 2017 at 9:50 PM, Lafras Uys <[email protected]> wrote: > > > Hi, > > > > I am working through Project Euler to learn J. For PE 13 I am trying to > > implement a carry function. For example: > > > > 41 carry 35 = 39 NB. Add the tens from 41 to the ones of 35 > > > > This is what I have so far: > > > > NB. "Large" numbers > > > > ] T=: 6 6 $ 3 7 1 0 7 9 4 6 3 7 6 9 7 4 3 2 4 9 9 1 9 4 2 2 2 3 0 6 7 > 5 > > 8 9 2 6 9 7 > > > > 3 7 1 0 7 9 > > > > 4 6 3 7 6 9 > > > > 7 4 3 2 4 9 > > > > 9 1 9 4 2 2 > > > > 2 3 0 6 7 5 > > > > 8 9 2 6 9 7 > > > > < \ S=: +/ |. "1 T NB. Suffixes of the reversed radix sums > > > > +--+-----+--------+-----------+--------------+-----------------+ > > > > |41|41 35|41 35 25|41 35 25 18|41 35 25 18 30|41 35 25 18 30 33| > > > > +--+-----+--------+-----------+--------------+-----------------+ > > > > f=: (0&{ @: ((0 10) & #:)) @: [ NB. Grab the number of tens in x > > > > g=: + > > > > h=: ] > > > > carry=: (f g h) > > > > carry/ L:0 < \ S > > > > +--+--+--+--+--+--+ > > > > |41|39|32|27|40|46| > > > > +--+--+--+--+--+--+ > > > > > > My carry verb works fine for the first two numbers, however as soon as > > there are three or more numbers it looks like all the "tens" from x is > > added to y, e.g. 4+3+25 = 32 instead of 28. My understanding is that `/` > > acts like a fold, maintaining an accumulator as in +/ 2 3 4 5 = (((2+3) + > > 4) + 5) so that the left hand side is the result of the computation to > > date. I'm clearly missing something important here. > > > > > > Any comments and help is appreciated, > > > > > > Lafras > > ---------------------------------------------------------------------- > > 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
