• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 2. Условия

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Криптографический анализатор»

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

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

Основываясь на общих знаниях о частотности букв в английском языке, программа должна вынести вердикт о вероятности ключа по следующим правилам:

  1. Если предполагаемый ключ — это буква 'E', то это наиболее вероятный вариант, так как 'E' — самая частая буква в английском языке.
  2. Если ключ — одна из других частых гласных ('A''O''I'), то это вероятный вариант.
  3. Если ключ — одна из самых редких букв ('Z''Q''J''X'), то это маловероятный вариант.
  4. Во всех остальных случаях (другие согласные и гласные) ключ считается сомнительным.

Программа должна вывести одну из четырёх оценок: «Наиболее вероятный ключ.», «Вероятный ключ.», «Маловероятный ключ.» или «Сомнительный ключ.».

Формат ввода

Первая строка: зашифрованное сообщение (тип: строка).
Вторая строка: предполагаемый ключ расшифровки, одна заглавная буква английского алфавита (тип: символ/строка).

Формат Вывода

Одна строка: оценка вероятности ключа (тип: строка).

Пример

Ввод

Xli getvi csyph xsve!
E

Вывод

Наиболее вероятный ключ.

Подсказка

Тут подсказки не будет, решай сам!

main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
# Программа запрашивает зашифрованное сообщение.
# Оно не используется в логике, но является частью условия задачи.
encrypted_message = input()

# Программа запрашивает предполагаемый ключ — одну букву.
# Это главный входной параметр, который будет анализироваться.
key_char = input()

# Проверяем, является ли предложенный ключ буквой 'E'.
# Это основное и самое сильное условие.
if key_char == 'E':
    # Если да, выводим сообщение о наибольшей вероятности.
    print("Наиболее вероятный ключ.")

# Если ключ не 'E', проверяем, является ли он одной из других частых гласных.
# Используем несколько условий 'or' для проверки вхождения в группу.
elif key_char == 'A' or key_char == 'O' or key_char == 'I':
    # Если да, выводим сообщение о вероятности.
    print("Вероятный ключ.")

# Если предыдущие условия не выполнились, проверяем, не является ли ключ редкой буквой.
elif key_char == 'Z' or key_char == 'Q' or key_char == 'J' or key_char == 'X':
    # Если да, выводим сообщение о малой вероятности.
    print("Маловероятный ключ.")

# Если ни одно из вышеперечисленных условий не сработало,
# значит, это любой другой символ (частая согласная и т.д.).
else:
    # Выводим сообщение о сомнительности ключа.
    print("Сомнительный ключ.")

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!