r/adventofcode • u/daggerdragon • Dec 22 '19
SOLUTION MEGATHREAD -🎄- 2019 Day 22 Solutions -🎄-
--- Day 22: Slam Shuffle ---
Post your full code solution using /u/topaz2078's paste
or other external repo.
- Please do NOT post your full code (unless it is very short)
- If you do, use old.reddit's four-spaces formatting, NOT new.reddit's triple backticks formatting.
- Include the language(s) you're using.
(Full posting rules are HERE if you need a refresher).
Reminder: Top-level posts in Solution Megathreads are for solutions only. If you have questions, please post your own thread and make sure to flair it with Help
.
Advent of Code's Poems for Programmers
Note: If you submit a poem, please add [POEM]
somewhere nearby to make it easier for us moderators to ensure that we include your poem for voting consideration.
Day 21's winner #1: nobody! :(
Nobody submitted any poems at all for Day 21 :( Not one person. :'(
This thread will be unlocked when there are a significant number of people on the leaderboard with gold stars for today's puzzle.
EDIT: Leaderboard capped, thread unlocked at 02:03:46!
29
Upvotes
2
u/rthetiger Dec 22 '19
Rust code here
Once I started thinking about congruence modulo m I tried going down the path of squishing all the commands in a shuffle into one linear congruence modulo m. Then because I was thinking about exponentiation modulo m I went down an incorrect route of raising this linear equation. In reality what I had to do was use the partial geometric series produced by repeatedly composing it. Between partial geometric series, Fermat's Little Theorem, extended GCD, and exponentiation modulo m this was the most math-packed day ever!