Go and Python and Typescript all have their own footguns.
I assume Rust is the same, but haven’t used it personally to see
Go and Python and Typescript all have their own footguns.
I assume Rust is the same, but haven’t used it personally to see


Also the number of outcomes isn’t connected to the solution space reduction the way you say. If you don’t know whether the fake coin is heavier or lighter, both tilt-right and tilt-left are effectively the same result. So at least your first test really only has 2 meaningful outcomes.
In general, you’ll only reduce your solution space DOWN TO (not by) 1/(number of distinguishable outcomes) if the possible solutions are evenly divided among those outcomes. It’s easy to have a problem where “result 1 narrows it down a lot, result 2 doesn’t tell us much”


If you don’t know whether it’s heavier or lighter, after the first test shows uneven you still have 6 coins possible. You can do it in 3 tests only if you know lighter vs heavier for the fake coin.
You can actually change the functionality of some punctuation, such as is used in my favorite command
:():;:
https://paulgraham.com/avg.html