Vance A Heron
1/7/2005 9:02:00 AM
Late response, with a question about the solvabilty of these
kind of problems in general.
I used a similar approach and get similar answers to Glenns, only
much slower (although mine finishes in finite time :) When running
Glens program, I get many partial solutions in < 1 Sec (including most
that my program finds) - then his progam consumes 99% of my CPU
time indefinately. On my PC, mine runs in ~10 S for crypto1
(partial answer) ~16 S for crypto2, full correct answer,
and ~80 S for crypto3, producing garbage. (can I buy a
vowel? :)
Actually I added the ablity to provide a partial map
to help prime the solver - still cant make sense of crypto3.
The main question I have is how does one handle non-dictionary
words that match a dictionary word signature - and then force
other wrong choices. The specific case is "alva" which can
map to "aqua". Once I have "aqua" as plain text, it prevents
the solver from using the letter 'u' in genius - making that
word match denims.
In fact I can envsion quotes with non-dictionary words that
could map, wrongly, to a set of all dictionary words - i.e.
the solution with 1 or more "unsolved" words would be more
correct than the solution with no unsolved words...
There's also the situation of "bent, cent, vent, went" - where
the choice of any of them doesn't affect any other words in the
cypher text - providing no help selecting between them.
In both these cases, I don't think backtracking can help - other
than to provide a number of possible solutions that a person
could read and pick from?
Addionally, while I agree that brute force w/26! possible maps
is impractial, after a certain point, would it make sense to
use the brute force approach for the "remaining" letters -
somwhere in the 8-10 letters remaining?
Thanks to all involved in providing this - been reading for a
while, but this is my first try at solving one ... took *way*
more time than I intended, but was lots of fun. Looking forward
to more in the future.
Vance