theonlysaneone wrote:
5. Repeat steps 1-4 for another symbol. Once you have your possible modifier combinations written out, compare them to the ones from another symbol and write down the ones that are common to both. For instance, if 5-8-18 works for your first symbol and works for your second, write it down. However, if it doesn't work for one of your symbols, cross it off.
I think I have a faster way to do something similar (it can be done in your head, with a few handmade reference tables). Mine works best with as few Mod1 and Mod2 changes as possible.
Unfortunately, I'm in a rush , so I'm posting this in the hopes that someone might polish this off: [edit] I tried to polish this up, but I don't know yet how comprehensible it is...
Stuff like "Mod3[1]" means "modifier 3, column 1"
"mod n" means
modulo, the remainder when you divide by n.
Currently*, the symbols have these values:
X = 1 mod n
V = 2 mod n
C = 3 mod n
8 = 4 mod n
P = 5 mod n
(this symbol is also known as mushroom)Z = 6 mod n (if necessary)
O = 7 mod n (if necessary)
...where n is the number of symbols (5 with 2-mod 5-symbol, 6 without O, or 7 with O).
Write the above key somewhere handy. Mine for 3-mod without O looked like this:
Code:
...-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 ...
... Z P 8 C V X Z P 8 C V X Z ...
Actual procedure:
Before starting brute force:
Make a table with each combination of two symbols (XX, XV, XC...) and write down all the modifiers that begin with each of the two symbols. I suggest something like this:
Code:
XX: 26 |VX: 2 |CX:
XV: |VV:16,18 |CV:
XC:1, 29 |VC: |CC: ....
X8:8, 12 |V8: |C8:
XP: 23 |VP: 28 |CP:
XZ: |VZ: 21 |CZ:
Convert the second symbol of your target into its number, and do the same for your key. Subtract the key from the target, modulo n (this means: if you get a negative number, add n to it -
don't drop the negative sign). Write this number down, which will be called T below.
T = (Target[symbol 2] - Key[symbol 2]) mod n.
During brute-force: For each combination of three first-column symbols, place down *two* out of the three modifiers. Remember what symbol you'll need for the first column of your last modifier.
Look at the second column, and find what your last modifier's *second* symbol should be, based on T and the other two modifiers:
For 3-mod, this is equivalent to solving Key[column 2] + Mod1[2] + Mod2[2] + Mod3[2] = Target[2] mod nFor 3-mod:
Mod3[2] = T - Mod1[2] - Mod2[2] mod nFor 2-mod:
Mod2[2] = T - Mod1[2] mod nNow you can choose your last modifier based off its first *two* symbols. Look it up in your table (made before). This should narrow your choices down for your last modifier to just one or two (or sometimes none - you've already ruled them all out). If you can do this math quickly, it should be much much faster than trying all the possibilities based off just the first symbol (six or so each).
(It is indeed possible to match on the last three symbols, instead of just the last two. But with two symbols, you'll already encounter situations where you have no matches - with three symbols, it becomes so rare to match all of them that it's probably faster to just match on two.)
*
NOTE if the values change:
I figured these values out by mostly guess-and-check with a reference table on 2-mod, though 1-mod might be easier to start with. The symbols, if you have the correct behind-the-scenes values and not just equivalently-behaving values (see below), retain their (positive) values going up from one type of puzzle to the next. So for 2-mod, P === 5 mod 5 (note: NOT 0 mod 5), which becomes P === 5 mod 6 with 3-modifier puzzles (note: NOT 0 mod 6). If these values change, you'll probably need to figure the values out starting with 2-mod or 1-mod, because I found it very hard to discover the values starting cold with 3-mod (before checking on my everything-retains-their-values hunch).
Note that you could accidentally swap some of the symbol values around and not be able to tell until you moved on to the next type of puzzle. For example, you can solve all the 2-modifier puzzles with everything negative by accident (X === (-1 mod 5) === (4 mod 5) instead of (1 mod 5), V === (-2 mod 5) === (3 mod 5) instead of (2 mod 5), and so on.). This is okay, because modular addition and subtraction behaves the same regardless. But then your values for each symbol will seem to be wrong when you go to the 3-mods -- so you have to negate (mod n) all your values first.
For example, say the 2-modifier symbols don't seem to retain their values when going to mod-3. Then try making all the 2-modifier values their negative.
For example, if you have X === (4 mod 5), do this:
X === (4 mod 5) === (-1 mod 5), so instead, try X === (1 mod 5). (Do the same for V, C, and "8")
Figuring out these properties was the most time-consuming part of the puzzle for me so far, but I hope other people will benefit. [edit] made faster, added notes about where the above numbers came from, made clearer