Silicon Zeroes

Silicon Zeroes

View Stats:
Wolfie Jan 27, 2018 @ 2:19pm
How to optimize Odds?
I've been playing this game a lot, finding perfect solutions for every puzzle except one: Odds, on the Asides board. I just can't figure out how to do this in only 16 modules. My first solution was 27 modules, and I can't really figure out how to do better.

The thing that makes this puzzle so complex versus one like Greater is that it has both positive and negative numbers, and each can be odd or even. There is no way to see if the number we need to analyze is positive or negative. So what my initial solution with 27 modules did was make two counters, both starting at the given number. One would increase the number by 2 every tick, the other would decrease it by 2 every tick. Both counters had two comparitors, one with 0, and one with 1. The idea was that a positive number would count down to 0 or 1, and a negative one up to 0 or 1. It worked, but obviously took way too many modules for a perfect solution (two counters that both need initialization, 4 comparitors whose results need to be analyzed, a modified instruction counter, etc).

I tried other methods. For example, I tried just counting up or down 1 every tick, and using an alternator to tell whether an odd or even number of ticks had passed when one of the counters reached 0. I also tried to just count up (using steps of 2) to 30 and 31, so positive and negative numbers would both work in the same system. However, this takes too many ticks. This attempt can be seen here:

https://steamuserimages-a.akamaihd.net/ugc/927048093874326708/4BAA72189DA1AD0D38A053F4315BB6D673254092/

My mentioned attempt with the alternator didn't produce correct results yet, but I think it would run into the same problem of not being fast enough, since it only uses steps of 1. I also considered just comparing to even values, and if the counter reaches the end, write that it was an odd value, but I imagine it would run into the same issues. I just don't see any way to quickly identify all 4 cases (postive/negative + odd/even) in just 16 modules. I see no way to calculate the absolute value of an input number with the modules I have, I can't shift or divide, I can't check for Greater Than Zero.

I don't think I want a copied solution from someone, but rather just an idea of what to do. What mathematical property do you use, what do you compare with? Thanks in advance!
Last edited by Wolfie; Jan 27, 2018 @ 7:49pm
< >
Showing 1-4 of 4 comments
PlayJunkie Jan 11, 2019 @ 5:31pm 
Hey, did you find a better solution? I had a similar one like you but only got down to 20.
Last edited by PlayJunkie; Jan 11, 2019 @ 5:35pm
Wolfie Jan 12, 2019 @ 6:57pm 
My solution with 16 modules increases the number by 2 every tick, and then checks if it's equal to 32, 33, or 2, and if so writes the appropriate value. The check for 2 makes it just fast enough for all the tests that would otherwise fail (the ones that have a lot of negative even numbers). Theoretically a test consisting of a lot of -31's probably wouldn't pass the tick limit, but thankfully no such test exists in the set.
PlayJunkie Jan 13, 2019 @ 6:53am 
Thanks for the response.
You mentioned several things i had not thought about and with your help I could beat it right now:) With only 15 Modules:):)
Of course it only works because the numbers in the tests are exactly how they are:)
Alidos Jun 5, 2024 @ 6:32am 
This thread is old, but it was the first result when I searched. So here is where I was stuck and how I solved it. I was stuck as 17 for a while, a counter which increments when the output is non-null: comparer, input selector, #1, add, latch. (5) + a resettable counter by 2, comparer, input selector #2, add, latch (+4, because the same comparer), then add or subtract the 2 count , then two expanded comparers. (+4) where x is the read value and n is the 2 count, check if 2 = x, x+n, x-n, or if 1 = x, x+n, x-n. Then an adder to see if either was true, then a input selector to determine if the output of 1= should be sent to the writer. (+4). So now a clean 17 that runs well. Then I finally realized the first counter could remove the input selector and instead of adding 1 at the top add the output from the adder at the end (checking if either odd or even was resolved).
< >
Showing 1-4 of 4 comments
Per page: 1530 50