Я понятия не имею, как это сделать, может кто-нибудь помочь мне начать и помочь мне написать программу для расшифровки зашифрованного текста Цезаря. У меня есть программа, которая расшифровывает и печатает все 26 смен, но я хочу напечатать только одну правильную, спасибо!

-2
Trial Acc 5 Ноя 2019 в 11:01

1 ответ

Отредактируйте, увидев упоминание термина "частотный анализ" в вопросе.

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

Частотный анализ Если ваш текст достаточно длинный, то это можно сделать с помощью частотного анализа. Каждый английский алфавит встречается с определенной частотой (например, здесь). Вы знаете, что ваша самая частая буква в зашифрованном тексте, вероятно, будет E, T или A. Вы можете заменять по одной букве за раз и смотреть, начинает ли появляться скелет «слов». Пока текст не будет расшифрован, это будет метод проб и ошибок. В качестве альтернативы вы можете сопоставить буквы в зашифрованном тексте с обычными английскими буквами в зависимости от «ближайшей» частоты совпадения. Ваша задача станет сложнее, если между словами нет пробелов (но я думаю, что, поскольку вы имеете дело с простым шифром Цезаря, такая возможность меньше).

Загляните в словарь английского языка

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

Вы можете ввести все слова (которые генерируются для каждой смены) в поиск по английскому словарю. Вы можете дать +1 балл, если совпадение найдено для каждого слова, или -1 в противном случае. Правильная смена будет иметь максимальные баллы. Это более автоматизировано и сравнительно реже методом проб и ошибок.

Обратите внимание, что этот метод также необходимо настроить, если в зашифрованном тексте нет пробелов между словами.

Сообщите нам больше о типе зашифрованного текста, который у вас есть, и о том, требуется ли вам использовать только частотный анализ.

0
Amit 5 Ноя 2019 в 11:57
Да, я могу использовать английский словарь. Подожди, пожалуйста, как бы поразвлечься, как бы мне все слова накормить? Спасибо за вклад :)
 – 
Trial Acc
5 Ноя 2019 в 11:07
У меня не будет доступа к компьютеру до вечера, поэтому я не могу вам привести пример. Однако я расширил свой ответ.
 – 
Amit
5 Ноя 2019 в 11:58
Нет, мне не обязательно использовать только частотный анализ, но я подумал, что это самый простой способ расшифровать, если у вас нет ключа. Я просто ищу самый простой и простой способ на данный момент ... Оцените ваши усилия :)
 – 
Trial Acc
5 Ноя 2019 в 13:52
Что не так с текущим ответом, вы уже пробовали частотный анализ? Кажется, вам нужно больше времени, чтобы поговорить об этом ответе, чем то, что вы тратите на ввод кода ...
 – 
Maarten Bodewes
6 Ноя 2019 в 02:56
Но я не знаю, с чего начать. У меня есть программа, в которой перечислены все 26 возможных смен, но мне нужно распечатать только одну правильную.
 – 
Trial Acc
6 Ноя 2019 в 09:12