I used Roger Hui’s cr function, applied with cr/ to a 2-column table of moduli and remainders. See https://code.jsoftware.com/wiki/Essays/Chinese_Remainder_Theorem
But it’s good to write your own! Mike Sent from my iPad > On 14 Dec 2020, at 17:48, Joseph Novakovich <[email protected]> > wrote: > > Hello > > For part 2, I implemented a chinese remainder theorem dyad, built from > extended euclid gcd. > https://en.wikipedia.org/wiki/Chinese_remainder_theorem > > egcd =: 4 : 0 NB. extended gcd > 'a b c d s t' =. 1 0 0 1,x,y > while. r =. t - s*q =. <. t%s do. > c =. t [ a =. c-q*a [ t =. a > d =. t [ b =. d-q*b [ t =. b > s =. r [ t =. s > end. a,b,s assert. s = (a*x) + b*y > ) > > crt =: 4 : 0 NB. chinese remainder theorem > 's t g'=.m egcd n['b n'=.y['a m'=.x > (<.m*n%g) (|,[) (a*n*t)+&(%&g) (b*m*s) assert. 0 = g | a-b > ) > > crt/ can then solve systems of equations where items are lists of > integer constraint followed by modulus. > > If there are suggestions for better style/implementations I'd be > curious to hear advice. > > Joseph > > > >> On 12/14/20, David Lambert <[email protected]> wrote: >> https://adventofcode.com/2020/day/13 >> Part 2. >> >> I understand the problem sufficiently to solve the examples. I fear the >> run time of my program, which counts upward in increments of the maximum >> value starting from some residue, will take too long for the actual data. >> Please offer suggestions for a direct solution. >> >> Thanks, and be well. Dave. >> ---------------------------------------------------------------------- >> 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
