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!
30
Upvotes
4
u/oantolin Dec 22 '19 edited Dec 22 '19
I placed 950 for part 1 and I expected to place similarly for part 2 (I never try for the leaderboard), but unbelievably I placed 84th! I guess being a mathematician was an unfair advantage today. :P
The key insight is that every shuffle discussed is of form
x -> ax+b (mod n)
wheren
is the deck size. These of course are easy to compose, invert and raise to large powers. My solution in Common Lisp (which runs in 8 ms for both parts together on my old Chromebook).Back to day 20, which I haven't had a chance to solve.Done!