Page 12 - Activités algorithmiques avec Python en spécialité Mathématiques
P. 12

 Thème : probabilités, listes
 TI-83 Premium CE Edition Python TI-82 Advanced Edition Python
 Niveau : spécialité maths Première
   Déchiffrement d'Al Kindi
 L. DIDIER & R. CABANE
  Fiche méthode
   Proposition de résolution
On crée trois fonctions dans ce script :
 Une fonction freq_lettre qui prend comme arguments une chaîne de caractères et une lettre. Cette fonction renvoie la fréquence d’apparition de la lettre dans la chaîne de carac- tères.
 Une fonction freq_alphabet qui prend comme argument une chaîne de caractères et qui renvoie la liste des lettres de l’alphabet accompagné de leurs fréquences d’apparition dans la chaîne de caractères (c’est donc une liste de listes).
 Une fonction affichage qui prend comme argument la liste renvoyée par freq_alphabet et qui renvoie une liste com- posée des listes de lettres si la fréquence d'apparition est non nulle, avec une fréquence arrondie à 3 décimales.
Étapes de résolution
 Pour freq_lettre, on commence par chercher le nombre de caractères à traiter : l'instruction len(texte) permet jus- tement de déterminer la longueur de la chaîne de caractères (ici nomméetexte). La boucle «for» permet ensuite de compter le nombre d’apparitions de la lettre dans le texte.
 Pour la fonction freq_alphabet, on utilise plusieurs fois la fonction précédente.
Un principe à retenir : on peut appeler une fonction (ici, la fonction freq_lettre) à l'intérieur d'une autre fonction (ici, freq_alphabet). Voir l’appendice 1 à ce sujet.
 On construit la liste appelée frequences, initialisée avec une liste vide. L’instruction frequences.append([lettre,freq_lettre(texte,lettre)])
permet à chaque passage de boucle d’ajouter une lettre de l’alphabet accompagnée de son pourcentage d’apparition dans le texte en faisant appel à la fonction freq_lettre.
              10
 Ce document est mis à disposition sous licence Creative Commons
    © Texas Instruments 2021 / Photocopie autorisée
         














































































   10   11   12   13   14