This page is not created by, affiliated with, or supported by Slack Technologies, Inc.

## 2020-12-13

## Channels

- # adventofcode (69)
- # announcements (1)
- # babashka (68)
- # beginners (37)
- # calva (3)
- # cider (4)
- # cljdoc (4)
- # cljsrn (1)
- # clojure (73)
- # clojure-europe (13)
- # clojure-nl (15)
- # clojure-switzerland (11)
- # clojure-uk (6)
- # clojurescript (14)
- # code-reviews (1)
- # conjure (1)
- # cryogen (3)
- # fulcro (32)
- # lambdaisland (8)
- # pathom (13)
- # reagent (6)
- # releases (1)
- # reveal (43)
- # shadow-cljs (9)
- # tools-deps (2)
- # vim (2)

Recording: https://youtu.be/q-T87Ja2DF8

“In life, there are 92319243542196534129765432175643216314925319 kinds of people … those who can solve the math problems, and the others.”

I thought maybe today they want us to brute force it and I waited for 20 minutes for the brute force to complete before giving up 🙈

I tried brute forcing, but then I read the text again and I stopped torturing my 2011 mac book air.

Brute force? or remember basic HS math from thirty years ago? Maybe my high schooler is up.. If only I was a CS major instead of MIS.. Maybe it will be debits and credits next?

Good morning !

I think that those numbers large enough to fear a math overflow are a good hint that we need to be prepared to use https://clojuredocs.org/clojure.core/bigint and its friends.

Only just found this channel and running a bit behind, but I've been putting up marginalia versions of my solutions at: https://lemonwatcher.com/advent.html

Bit stuck on part 2 today, not sure what I'm missing: Given the busses in positions

```
19 is pos 0
41 is pos 9
37 is pos 13
367 is pos 19
13 is pos 32
17 is pos 36
29 is pos 48
373 is pos 50
23 is pos 73
```

I have calculated the answer to the problem I think I've to solve as :
`561773853149685`

Because
```
(mod 561773853149685 19)
=> 0
(mod 561773853149685 41)
=> 32 (41 - 9 = 32)
(mod 561773853149685 37)
=> 24 (37 - 13 = 24)
(mod 561773853149685 367)
=> 348 (367 - 19 = 348) as 367 is in the 19th pos.
(mod 561773853149685 13)
=> 7 (13-32 mod 13 = 7) as 13 is in the 32nd pos
(mod 561773853149685 17)
=> 15 (17 - 36 mod 17) as 17 is in the 36th pos.
(mod 561773853149685 29)
=> 10 (29 - 48 mod 29)
(mod 561773853149685 373)
=> 273 (373 - 50)
(mod 561773853149685 23)
=> 19 (23 - 73 mod 23)
```

What am I misunderstanding?it recommends starting at 15 places (100000000000000). Is this a good starting place?

and is there some smart math form of this (using LCM?). I couldn't figure one out given the offsets

It’s literally the Chinese remainder theorem

Using LCM I don’t know

Well, all my buses are primes. So the least common multiplier between any 2 buses is just bus 1 * bus 2

I enjoy these when they're programming puzzles. It's not so much fun when I have to try (and fail) to independently work out some mathematical theorem I've never heard of.

I agree @U0132B7P7C6. While it might literally be the Chinese remainder theorem, that's not the part of programming I enjoy/use often

Agreed with the above. There are times when the “math puzzle” piece is interesting, but at least for me, personally, I’m trying to build up my Clojure skills through this exercise. I managed to Google my way to the Chinese remainder theorem (and this thread), and happy to see others are in the same boat. This is one case where I was happy to copy/paste some code. 😆 https://github.com/jeff303/advent-of-code-2020/blob/master/src/advent_of_code/day13.clj#L80

finally! Got a solution that works for part 2. I had 12 failed attempts at this one!

Thanks. I got it figured out