SHENZHEN I/O

SHENZHEN I/O

CONTROL SIGNAL ATTENUATOR
38 Comments
Verdammte Heinz 26 Jun, 2023 @ 12:59pm 
Improved to 5 / 180 / 3, realized it's even less inputs. Hoovered with my mouse partially on the outputs, so I had the in between 10, 30, 50, 70 and 90 inputs as well.
Verdammte Heinz 26 Jun, 2023 @ 12:41pm 
Nice, found a solution in 5 / 375 / 7
Tzaphqiel  [author] 9 Oct, 2017 @ 5:59pm 
@stripwax Thanks!
The simple input cases were intentional. Just having a simple divide-by-two problem with the full range of values only has one good solution. By simplifying the cases, you can teach people to take advantage of certain mechanics without having to spoil it by directly explaining it to them. :happyBUD:
slow down cadet 9 Oct, 2017 @ 2:14pm 
This was a fun challenge. You'd think dividing by 2 would be easy. Although this puzzle has only a few simple input cases which means you can get away with some sneaky behaviour and still succeed.
阿罗C 10 Dec, 2016 @ 10:56pm 
good
姬奏 9 Dec, 2016 @ 6:57am 
cool
Năvală 9 Dec, 2016 @ 2:24am 
Cool
Kiss 6 Dec, 2016 @ 9:21pm 
cool
Ξ Alcor Ξ 5 Dec, 2016 @ 10:35am 
:steamsad:

Ξ Alcor Ξ 5 Dec, 2016 @ 10:34am 
0.213
TuT 5 Dec, 2016 @ 5:49am 
...
xion 5 Dec, 2016 @ 12:03am 
KKLLK
998 4 Dec, 2016 @ 12:17am 
0.0.0.0
浩楠c 3 Dec, 2016 @ 8:56pm 
22222
CS BATTLE MODER [279] 3 Dec, 2016 @ 10:58am 
cool
Jäҝőъ 3 Dec, 2016 @ 5:21am 
...
grasspound 2 Dec, 2016 @ 12:18pm 
SnakeV5 1 Dec, 2016 @ 8:34pm 
good:steamhappy:
HydroShadow- 1 Dec, 2016 @ 12:29pm 
1
senio el cevlare 1 Dec, 2016 @ 6:54am 
J
†Арханге놙 1 Dec, 2016 @ 5:03am 
1
ChEnG_return 1 Dec, 2016 @ 4:29am 
不知道是干什么用的
Tzaphqiel  [author] 30 Nov, 2016 @ 3:25pm 
@Manabender: Nice work on finding the solution and nice detail on your explanation. I was surprised when I saw that other solution on my leaderboards at first, but the ROM behavior clicked pretty quickly soon after.
It's also a good reason for leaving the problem as-is instead of expanding the set of signals to all even numbers between 0 and 100 inlusive. A more finely-grained input set would ruin that approach and effectively reduce this problem to one with a single optimal solution, whereas this has two solutions.

@Falco: That behavior of the ROM isn't documented. It's one of several features that you have to experiment with to figure out.
Falco[Ger] 30 Nov, 2016 @ 2:29pm 
aw crap. I didn't think of that because I thought that
setting the address on a memory will truncate it to 13 if input > 13... is that in the manual?
Manabender 30 Nov, 2016 @ 2:22pm 
@Tzaphqiel:

This solution is 5/180/3.
When you send an address to the ROM module, it sets the address to [input modulo 14]. Since 0, 20, 40, 60, 80, and 100 (the only inputs that appear) all have a different result modulo 14, you can assign all those results to a ROM module. The three lines are 1) Mov input to ROM address 2) Mov ROM data to output 3) Slp 1. The ROM data, for those too lazy to do the modulo math, is {0,0,50,0,30,0,10,0,0,0,40,0,20,0}
Tzaphqiel  [author] 30 Nov, 2016 @ 2:07pm 
@Falco[Ger] It isn't too much more expensive, but it does cost more than 3 yuan. As an extra hint: it isn't more expensive because you swapped an MC4000 for an MC6000.
Falco[Ger] 30 Nov, 2016 @ 1:37pm 
how expensive is that 3 line solution you have figured out?
達維瑞克 30 Nov, 2016 @ 1:18pm 
ns
Tzaphqiel  [author] 30 Nov, 2016 @ 1:03pm 
Wow. Thanks for all of the comments! I guess this is what happens when you put out a workshop item this quickly.
It seems that many people have found the 6-line solution (not too hard). However, I want to challenge you all to find a 3-line solution (the one I've figured out after seeing that it was possible also used only 180 power) . I won't say too much about how to do it aside from saying that I was nicely surprised at the clever component use that enabled the 3-line solution . I had a good bit of a laugh on figuring out how my friend did it.
Falco[Ger] 30 Nov, 2016 @ 12:34pm 
3 / 358 / 7 and 3 / 360 / 6
Falco[Ger] 30 Nov, 2016 @ 12:29pm 
actually multiplying by 5 first never even occured to me.
I just divided by 10 using dgt and then multiplied by 5 and had a special case for 100.
so basically I divided by 10, then multiplying by 5 instead of multiplying by 5 and then dividing by 10, which is saving the extra lines for the 100 case.
KoTaM 30 Nov, 2016 @ 11:44am 
3 / 358 / 7 =) fun and easy
pv2b 30 Nov, 2016 @ 11:33am 
Fun little puzzle, but maybe a bit on the easy side due to the restricted set of input values. :-)
Wyrframe 30 Nov, 2016 @ 10:50am 
3 / 360 / 6, no conditional execution necessary.

Hint: What do the inputs look like when multiplied by 5?
Rimbas 30 Nov, 2016 @ 4:37am 
Pretty simple but good one. Solved with 2 completely different solutions
Diogenes 29 Nov, 2016 @ 10:14pm 
Best I've gotten is 5 / 358 / 7
Falco[Ger] 29 Nov, 2016 @ 2:44pm 
it really helps that all the numbers end with 0. that's all I'll say on this one.
LeChronos 29 Nov, 2016 @ 12:47pm 
Nico one, had to think a bit.