• Aucun résultat trouvé

Soit trier(liste) une fonction renvoyant une copiée triée de la liste qu’on lui passe en paramètre

N/A
N/A
Protected

Academic year: 2022

Partager "Soit trier(liste) une fonction renvoyant une copiée triée de la liste qu’on lui passe en paramètre"

Copied!
1
0
0

Texte intégral

(1)

DUT Info Introduction à l’algorithmique et à la programmation 2020–2021

TD 10 - Récapitulation

Exercice 1. Soit trier(liste) une fonction renvoyant une copiée triée de la liste qu’on lui passe en paramètre. Quels doctests faudrait-il écrire pour se convaincre que la fonction marche correctement ?

Exercice 2. Écrivez une fonction k_grammes(chaine, k), qui renvoie un dictionnaire conte- nant, pour chaque sous-chaîne de longueur k de la chaîne donnée, son nombre d’occurrences dans la chaîne.

Exercice 3. Utilisez la fonction sorted, et si nécessaire, ses paramètres key et reverse ainsi que les fonctionslambdapour réaliser les tâches suivantes en une ligne :

1. construire la liste des valeurs d’un dictionnaire triée de façon croissante ; 2. construire la liste des clés d’un dictionnaire triée de façon décroissante ;

3. construire la liste des couples (cle, valeur)d’un dictionnaire triée de façon croissante sur les valeurs ;

4. construire les 50 clés dont les valeurs correspondantes sont les plus grandes, triées de manière décroissante sur les valeurs ;

Exercice 4. Le chiffrement par substitution consiste à encoder un texte en appliquant une permutation arbitraire à l’alphabet d’origine. Écrivez une fonctionchiffrer(texte), qui reçoit un texte encodé en ASCII et renvoie une version chiffrée par substitution aléatoire du même message. Les caractères affichables de l’encodage ASCII se trouvent dans la chaîneprintabledu module string. Vous pouvez également vous servir de la fonction shuffledu module random, qui mélange en place les éléments de la liste qu’on lui donne en paramètre de façon aléatoire.

Exercice 5. Un moyen pour identifier les voyelles dans un message codé par substitution consiste à rechercher les lettres “sociables”, c’est-à-dire celles qui apparaissent en conjonction avec beau- coup de lettres différentes. Par exemple, le'z'en français est peu sociable, car il y a relativement peu de lettres qui peuvent l’accompagner, alors que le'e'sera considéré comme très sociable car on le retrouve dans de nombreux mots en compagnie de presque toutes les lettres de l’alphabet.

Dès lors, on peut utiliser cette mesure sur un texte chiffré pour tenter d’identifier les lettres du texte d’origine.

Écrivez une fonction sociabilite(texte) renvoyant un dictionnaire dont les clés sont les lettres du texte et dont les valeurs sont leur degré de sociabilité, c’est-à-dire le nombre de lettres différentes de l’alphabet que l’on trouve juste avant ou juste après la lettre concernée dans le texte. Par exemple, si l’on exécute le code sur "bonjour", on obtiendra :

>>> sociabilite("bonjour")

{'n': 2, 'j': 2, 'r': 1, 'u': 2, 'b': 1, 'o': 4}

Exercice 6. Écrivez une fonction probabilites(chaine) qui renvoie un dictionnaire dont les entrées sont de la formelettre: liste_de_tuples, oùliste_de_tuples contient des couples de la forme caractere, probabilite et est triée de manière décroissante sur les probabilités d’occurrence. Pour chaquelettreparmi les clés du dictionnaire, les couples qu’on retrouve sont donnés par les prédécesseurs de cette lettre danschaineavec la probabilité d’occurrence associée.

Par exemple, si l’on exécute la fonction sur la chaîne "bonjour" et qu’on trie son résultat, on aura :

>>> sorted(probabilites("bonjour").items())

[('b', []), ('j', [('n', 1.0)]), ('n', [('o', 1.0)]), ('o', [('j', 0.5), ('b', 0.5)]), ('r', [('u', 1.0)]), ('u', [('o', 1.0)])]

Page 1 / 1

Références

Documents relatifs

est un trinôme de degré 2 dont le coefficient de est positif. Donc est positif sauf entre ses racines

Une étude plus approfondie permet de conclure que ces deux surfaces sont tan- gentes tout le long de cette conique, qui contient d'ailleurs le point de rencontre des

Epreuve Classe Examinateur Sujet n° Coef.. 1pt 9) En utilisant la fonction ci-dessus, écrire un algorithme qui demande 10 nombres à l’utilisateur en les stockant dans un

Écrire une fonction occurrences(txt) renvoyant un dictionnaire avec le nombre d’occurrences de chaque caractère dans un texte txt..

EXEMPLE DE LISTE DE GENRES

En déduire le tableau de variations complet de f ..4. Résultats

Écrire une fonction occurrences(texte) qui, étant donné un texte texte, renvoie un dictionnaire dont les clés sont les lettres de texte et les valeurs en sont les occurrences..

en 26 minutes, soit un gain d’environ 11 minutes par rapport au premier programme. On avance, le gain est conséquent mais, pour être critique, on ne peut pas dire que la division