Практические задачи
Замечание.Данные передаются в программу из командной строки
Задача 1.Известны фамилия, имя и отчество пользователя. Найти его код личности. Правило получения кода личности: каждой букве ставится в соответствие число - порядковый номер буквы в алфавите. Эти числа складываются. Если полученная сумма не является однозначным числом, то цифры числа снова складываются и так до тех пор, пока не будет получено однозначное число. Например:
Исходные данные: Александр Сергеевич Пушкин
Код личности:
Задача 2.В шифре Цезаря алфавит размещается на круге по часовой стрелке. За последней буквой алфавита идет первая буква алфавита, т.е. после буквы "я" идет буква "а". При шифровании текста буквы заменяются другими буквами, отстоящими по кругу на заданное количество позиций (сдвиг) дальше по часовой стрелке. Например, если сдвиг равен 3, то буква "а" заменяется на букву "г", буква "б" на букву "д", а буква "я" на букву "в".
Зашифровать сообщение, используя шифр Цезаря со сдвигом .
Задача 3.Сообщение, зашифрованное шифром Цезаря достаточно легко расшифровать, зная сдвиг. Однако шифр Цезаря можно расшифровать даже при неизвестном значении сдвига, пользуясь следующим алгоритмом:
- найти частоты букв в сообщении , где ( -число букв в алфавите);
- найти вероятности букв в сообщении , где ;
- вычислить , где - это значение сдвига. Найти минимальное значение sum, подсчитывая ее для различных значений от до . Значение , на котором достигается минимум значения , считается сдвигом в шифре Цезаря.
- использовать найденное значение для расшифровки заданного сообщения.
Дата добавления: 2017-03-29; просмотров: 626;