this post was submitted on 10 Dec 2024
6 points (100.0% liked)

NotAwfulTech

386 readers
5 users here now

a community for posting cool tech news you don’t want to sneer at

non-awfulness of tech is not required or else we wouldn’t have any posts

founded 1 year ago
MODERATORS
 

The previous thread has fallen off the front page, feel free to use this for discussions on current problems

Rules: no spoilers, use the handy dandy spoiler preset to mark discussions as spoilers

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 3 points 1 week ago* (last edited 1 week ago) (3 children)

Day 13, day 13 of shirking other responsibilities.

p1Ok. So, I overthought this a little. Ultimately, this problem boils down to solving a system of 2 linear equations aka inverting a matrix.

Of course, anyone who has done undergraduate linear algebra knows to look to the determinant in case some shit goes down. For the general problem space, a zero determinant means that one equation is just a multiple of the other. A solution could still exist in this case. Consider:

a => x+1, y+1
b => x+2, y+2
x = 4, y = 4 (answer: 2 tokens)

The following has no solution:

a => x+2, y+2
b => x+4, y+4
x = 3, y = 3

I thought of all this, and instead of coding the solution, I just checked if any such cases were in my input. There weren't, and I was home free.

p2No real changes to the solution to p1 aside from the new targets. I wasn't sure if 64 bit ints were big enough to fit the numbers so I changed my code to use big ints.

I'm looking at my code again and I'm pretty sure that was all unnecessary.

[–] [email protected] 3 points 1 week ago* (last edited 1 week ago)

13 commentarySolved p1 by graph search before looking a bit closer on the examples and going, oh...

In pt2 I had some floating point weirdness when solving for keypress count, I was checking if the key presses where integers (can't press button A five and half times after all) by checking if A = floor(A) and sometimes A would drop to the number below when floored, i.e. it was in reality (A-1).999999999999999999999999999999999999999999999. Whatever, I rounded it away but I did spend a stupid amount of time on it because it didn't happen in the example set.

load more comments (2 replies)