Так что для забавы я решил вернуться к своему старому заданию в колледже, в котором был зашифрованный текст длиной около 75 символов и шпаргалка, в которой сообщение было подписано тремя буквами (инициалы моего учителя)
Что я сделал:
- Подшить результаты тем, у кого есть часть или вся кроватка в них.
- Затем я приступил к некоторому анализу частот букв на меньшем подмножестве результатов (1).
Теперь задача сводится к написанию некоторого программного обеспечения для распознавания языков, но сначала нужно решить несколько вопросов. Я выбрал перебор всех настроек ротора (тип, начальная позиция)
таким образом, получающиеся записи с частью или всей кроваткой в них все еще имеют некоторые буквы, выгруженные из панели управления.
Я знаю, что мой следующий шаг должен состоять в том, чтобы сделать две матрицы и переварить корпус, где в первой матрице я бы просто сделал подсчет, поэтому, если бы первая буква была буквой А, в первой матрице я был бы в ряду 0, и столбец, который я бы увеличил, будет буквой, следующей сразу за буквой A, скажем, что это буква B. Затем я перейду к букве B и увижу, что следующая буква - это буква U, поэтому я перейду к строке B и увеличу колонку. Запись U. Переварив весь корпус, я бы поместил вероятности во вторую матрицу.
Используя вторую матрицу, я мог бы присвоить значения оценки целым предложениям и иметь средства для оценки выходных данных и дальнейшего ограничения результатов, так что найти сообщение должно быть легко, как найти пин-код в НАМНОГО меньшем стоге сена.
Теперь я делаю это на python, и я хотел знать, лучше ли приводить символы к целым, делать вычитание наименьшего символа 'A' и затем использовать его в качестве индекса, или мне следует использовать dict и каждая буква будет соответствовать значению int, поэтому поиск индексов для местоположения в моих матрицах будет выглядеть примерно так: LetterTally[dict['A']][dict['B']]
.
Метод вычитания приведения выглядит следующим образом:
firstChar = 'A'
secondChar = 'B'
LetterTalley[(ord(firstChar)-ord('A'))][(ord(secondChar)-ord('A'))]
Из этих двух разных методов, что будет быстрее?