TD 1 : Algorithmes non formalisés - Notes Exhaustives
Algorithme de la Somme de l’École Primaire
Calcul de base : * Exemple : Pour calculer la somme , il convient d'ajouter des zéros implicites au nombre le plus court afin d'aligner les colonnes. * Résultat : . * Nombre d'opérations élémentaires : opérations (une somme d'entiers par colonne). Dans cet exemple, il n'y a aucune retenue.
Généralisation sans retenue : * Soit deux entiers de et chiffres. * Le nombre d'opérations élémentaires nécessaires pour effectuer la somme, en supposant l'absence totale de retenue, est défini par .
Somme avec retenues (cas intermédiaire) : * Exemple : Pour , le résultat est , nécessitant opérations élémentaires. * Analyse du meilleur et du pire cas (sans retenue dans la dernière colonne à gauche) : * Meilleur cas : Aucune retenue, soit opérations. * Pire cas : Une retenue dans chaque colonne excepté la dernière. Cela nécessite deux opérations par colonne, sauf pour la première (à droite) et la dernière (à gauche). * Calcul du nombre d'opérations au pire cas : , ce qui se simplifie en . * Exemple type du pire cas : ( chiffres) .
Somme avec retenue dans la dernière colonne (cas général) : * Exemple : , nécessitant opérations élémentaires. * Taille du résultat : La somme peut comporter soit chiffres, soit chiffres si une retenue se produit à la dernière étape. * Analyse des opérations : * Meilleur cas : Toujours opérations. * Pire cas : Retenue dans chaque colonne, y compris la dernière. On effectue une opération dans la première colonne et deux opérations dans toutes les autres colonnes. * Formule du pire cas : opérations. * Exemple type : ( chiffres) .
Énigme de la Bergère et de la Traversée de Rivière
Solution Standard (1 loup, 1 mouton, 1 chou) : * Séquence d'opérations : 1. transporter mouton 2. traverser (retour à vide) 3. transporter chou 4. transporter mouton (retour avec le mouton pour éviter qu'il ne mange le chou) 5. transporter loup 6. traverser (retour à vide) 7. transporter mouton
Solution Alternative : * Il est possible d'inverser l'ordre du loup et du chou : 1. transporter mouton 2. traverser 3. transporter loup 4. transporter mouton 5. transporter chou 6. traverser 7. transporter mouton
Généralisation avec loups, moutons et choux : * Réduction des valeurs : Si une solution existe pour des valeurs données, elle reste valide pour des valeurs inférieures en remplaçant « transporter » par une simple traversée à vide si n'est plus présent. * Situations impossibles : * : Impossible, car le mouvement forcé ramène systématiquement à l'état initial. * : Situation symétrique à la précédente, donc impossible. * : Aucun choix possible dès la première opération sans qu'un animal soit mangé. * Impact de l'ajout d'éléments : Ajouter des animaux ou des choux ne peut jamais rendre une situation résolvable car cela ne supprime aucune menace de prédation existante. * Solution avec plusieurs bergères : L'ajout d'une seconde bergère rend toute situation résolvable. * Méthode : Une bergère surveille la rive de départ pendant que l'autre transporte les loups et les choux un par un. Ensuite, la première bergère traverse pour surveiller la rive d'arrivée pendant que la seconde transporte les moutons.
Problème Géométrique : Le Château de Cartes
Règle de construction récursive : * Pour passer d'un château de niveau à un niveau , il faut : * Ajouter une structure triangulaire au niveau 1 (bas), surmontée d'une carte horizontale. * Répéter cela pour les niveaux . * Ajouter une structure triangulaire finale au sommet ().
Modélisation Mathématique : * Soit le nombre de cartes pour niveaux. * Valeurs initiales : , , . * Formule de récurrence : . Chaque nouveau niveau ajoute cartes par niveau existant (triangle + horizontale) plus un triangle de sommet ( cartes).
Application numérique : * Calcul pour cartes : * * * * Conclusion : Un château de cartes possède niveaux.
Cryptologie : Étude du Chiffrement de César
Définitions fondamentales : * Cryptographie : Art de transformer une information pour la rendre secrète (chiffrement). * Cryptanalyse : Analyse des messages chiffrés pour en découvrir le sens sans posséder la clé.
Mécanisme du Code de César (Chiffrement par décalage) : * Chaque lettre est remplacée par une autre située à une distance fixe (clé ) dans l'alphabet latin ( lettres). * Calcul mathématique : Si une lettre est associée à un nombre , la lettre chiffrée est . * Les caractères non alphabétiques (ponctuation, espaces) restent inchangés.
Exemples de chiffrement : * Message : "La vie est un long fleuve tranquille" * Clé 3 : "Od ylh hvw xq orqj iohxyh wudqtxlooh." * Clé -7 : "Et obx xlm ng ehgz yexnox mktgjnbeex."
Analyse Algorithmique : * Complexité du chiffrement : Pour un message de caractères, l'algorithme effectue opérations de décalage. * Déchiffrement : Utilisation de la clé opposée . Exemple : Déchiffrer « kajex » avec la clé donne « bravo ». * Attaque par force brute : Sans clé, on peut tester les décalages effectifs possibles. La complexité est de , ce qui est très rapide pour un ordinateur.
Analyse Fréquentielle et Sécurité : * Le code de César est considéré comme peu sûr car il ne modifie pas la distribution fréquentielle des lettres, il ne fait que la décaler. * En français (Wikipedia 2008), les fréquences d'apparition sont : * : * : * : * : * : * : * : * : * : * : * : * : * : * : * : * : env. * : * : * : * : * : * : * : * En identifiant la lettre la plus fréquente du message chiffré, on peut facilement deviner qu'elle correspond au 'e' et ainsi déduire la clé.