• 1
    Entrée et sortie
    • Tâches
  • 2
    Conditions
    • Tâches
  • 3
    Boucle for
    • Tâches
  • 4
    Chaînes
    • Tâches
  • 5
    Boucle while
    • Tâches
  • 6
    Listes
    • Tâches
  • 7
    Tableaux 2D
    • Tâches
  • 8
    Dictionnaires
    • Tâches
  • 9
    Ensembles
    • Tâches
  • 10
    Fonctions et récursion
    • Tâches
  • к

Leçon 2. Conditions

Difficulté :

Exercice«Analyseur cryptographique»

💻 Python

Vous & mdash; le jeune assistant du département de cryptographie. Votre collègue senior est engagé dans le décodage d'un message important écrit en anglais à l'aide d'une analyse fréquentielle. Il a déjà déterminé quel symbole du chiffre est le plus fréquent. Il doit maintenant vérifier quelques hypothèses sur la lettre de l'alphabet anglais à laquelle ce symbole correspond.

Votre tâche & mdash; Écrire un programme qui aidera à évaluer rapidement la plausibilité de l'hypothèse. Le programme doit demander un message chiffré (nécessaire pour le contexte, mais il n'est pas requis de l'analyser) et la lettre-clé présumée (celle dans laquelle, selon l'hypothèse, le symbole le plus fréquent est développé).

Sur la base des connaissances courantes sur la fréquence des lettres en anglais, le programme doit rendre un verdict sur la probabilité de la clé selon les règles suivantes :

  1. Si la clé présumée & mdash; est la lettre & nbsp; 'E' , c'est l'option la plus probable, car 'E' & mdash; est la lettre la plus courante en anglais.
  2. Si la clé & mdash; est l'une des autres voyelles fréquentes ( 'A' , & nbsp; 'O' , & nbsp; 'I' ), alors c'est une option probable.
  3. Si la clé & mdash; est l'une des lettres les plus rares ( 'Z' , & nbsp; 'Q' , & nbsp; 'J' , & nbsp; 'X' ), alors c'est une option peu probable.
  4. Dans tous les autres cas (autres consonnes et voyelles), elle est considérée comme douteuse.

Le programme doit afficher l'une des quatre évaluations : « clé la plus probable. », « clé probable. », « clé peu probable. » ou « clé douteuse. ».

Format d entrée

Première ligne : un message chiffré (type : ligne).
Deuxième ligne : la clé de déchiffrement estimée, une lettre majuscule de l'alphabet anglais (type : symbole/ligne).

Format de sortie

Une ligne : Évaluation de la probabilité clé (type : ligne).

Exemple

Entrée

xli getvi csyph xsve!
e

Sortie

La clé la plus probable.

Indice

There will be no clue here, decide for yourself!

main.py
Test 1
Test 2
Test 3
Test 4
Test 5
Test 6
Test 7
Test 8
Test 9
Test 10
Solution du développeur
# Программа запрашивает зашифрованное сообщение.
# Оно не используется в логике, но является частью условия задачи.
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("Сомнительный ключ.")

🎉 Félicitations ! 🎉

Tu as brillamment résolu la tâche ! C était difficile, mais tu as trouvé la bonne solution. Tu es encore plus proche de maîtriser la programmation ! Continue ainsi.

AD

Publicité

red-snake blue-snake green-snake

Exécution de votre code...

Assistant IA

Bonjour ! Je suis ton assistant de programmation. Pose moi toutes tes questions sur Python — je peux t expliquer les fonctions, les méthodes et t aider avec la tâche en cours !