Проверка каждой возможной комбинации алфавитного шифра - PullRequest
1 голос
/ 11 марта 2011

У меня есть то, что я считаю шифром (это не домашнее задание, а просто задача, которую я решил решить с помощью кодирования для развлечения), а именно:

"У-у-у-н-л-т-л-т-т-теасихр-н-хейг-сфсст"

Чтобы попытаться решить эту проблему, я хотел бы перебрать каждую возможную комбинацию присвоений шифров для каждой буквы в алфавите (явно грубым способом), но я не могу придумать элегантный способ выполнения тот. Как только я получу текущую итерацию назначения шифра, я полагаю, что я преобразую текст шифра в соответствии с шифром, а затем сравню первое трехбуквенное слово с трехбуквенным списком слов, а последние два слова с пятибуквенным списком слов, и если все три слова окажутся актуальными, я распечатаю результаты в файл. Это должно дать мне список разумных отправных точек, чтобы можно было отсеять неверные результаты. Если у кого-то есть идеи о том, как реализовать итеративный шифр, я был бы очень признателен. Большое спасибо,

Пибоди

1 Ответ

0 голосов
/ 11 марта 2011

Вы можете иметь 26 для петли.

ОК.Я шучу.


Очевидная, но неэффективная версия в псевдокоде:

for i = 0 - 26^26-1
  /* a = i/26^25 % 26
     ...
     z = i/26^0 % 26 */
  if all deciphered words are in the word list
    print
  end if
end for

Кстати, я не думаю, что это правильный способ расшифровки каксказал в вашем вопросе, потому что я не могу найти пример двойной наличие того же слова в английском предложении.

...