[PDF] TP no 9 - Tables de hachage





Previous PDF Next PDF



FranceArchives

Le mot archives est couramment employé dans le sens restrictif de documents ayant fait l'objet d'un archivage par opposition aux archives courantes. (2) Voir 



Lentrée dun mot dans le dictionnaire Lentrée dun mot dans le

Savais-tu que tous les dictionnaires ne sont pas identiques ? Tu ne retrouves pas les mêmes mots dans le Larousse le Robert ou le dictionnaire de 



TP no 9 - Tables de hachage

Écrivez une fonction ajoute(mot1 mot2



DicoMarine - Étude 4: La structure des articles dans les

28 janv. 2016 dictionnaires de marine français du XVIIIe siècle ... TICLE et secondairement des mots composés



Analyse métalexicographique du Dictionnaire Pemon dArmellada et

deuxième édition augmentée dans laquelle le nombre d'entrées est augmenté par l'inclusion de mots originaires du kamarakoto



Exercices corrigés

renvoie un dictionnaire qui contient la fréquence de tous les mots de la chaîne entrée. 9. Le type dictionnaire L'utilisateur saisit deux entrées d'une.



Le Dictionnaire de lAcadémie française en ligne : mode demploi

Pour rechercher un mot écrivez-le dans la case conçue à cet effet. Au début de votre frappe



DICTIONNAIRE SYNCHRONIQUE DES FAMILLES

règle générale les mots retenus sont des mots d'entrée dans le dictionnaire sui- vis d'une définition et dont le constituant homonymique est à l'initiale.



TABLEAU DES TERMES SIGNES CONVENTIONNELS ET

rition du mot en français de son origine sépare les nuances déterminées par groupe de mots ou d'une entrée dérivée ... ET ABRÉVIATIONS DU DICTIONNAIRE.



La facture des principaux dictionnaires médicaux français : point de

Dans un dictionnaire de langue l'entrée ne consiste généralement qu'en un mot (nom



Le Dictionnaire de l’Académie française en ligne : mode d

du Dictionnaire 2 Rechercher un mot Pour rechercher un mot écrivez-le dans la case conçue à cet effet Au début de votre frappe une liste suggestive de mots apparaît (c’est l’option par défaut dénommée « Mots commençant par») puis cliquez sur le mot recherché Entrée du Dictionnaire : « miroir »



Chercher un mot - Académie de Poitiers

mots que prononcent les enfans dans toutes les Langues Papa mama •Le son de l'A en françois est le même dans tous les mots: il ne diffère que par sa durée et par des nuances peu sensibles Il est long ou bref; long dans Trâme grâce; bref dans Glace trace •Dans les deux précédentes acceptions A est un nom substantif masculin



V5 LIRE UN ARTICLE DE DICTIONNAIRE -1

Le mot dentrée : l’orthographe du mot défini La classe grammaticale (ou nature) écrite en abrégé La ou les définitions du mot Un ou des exemples (en italique) Un ou des synonymes Un ou des contraires • On peut trouver dautres informations : - La prononciation; - Des mots de la même famille - Les origines du mot (étymologie) - 1

Comment bien utiliser le Dictionnaire?

? Systématiser l’usage du dictionnaire pour toute véri - fication de l’orthographe, du sens ou de la classe grammaticale d’un mot. Il est nécessaire de bien maitriser l’ordre alphabétique et les règles pour mettre des mots en ordre alphabétique.

Comment vérifier que les dictionnaires utilisés contiennent tous les mots de la fiche ?

Il est important pour le maitre de vérifier au préalable que les dictionnaires utilisés contiennent tous les mots de la fiche. Avant de réaliser l’exercice, il faut vérifier que les images existent dans le dictionnaire utilisé. Exercices mélangés (recherche, images, codes,ordre alphabétique…)

Quels sont les mots repères du Dictionnaire?

Le premier et le dernier mot dune double page de ’ dictionnaire s’ appellent les mots repères et permettent de savoir s’ il faut avancer ou reculer dans les pages pour trouver le mot que l’on recherche. Découverte collective de la notion Cherchons

Quels sont les avantages d’un dictionnaire?

Un dictionnaire permet de connaitre la prononciation et l’orthographe d’un mot, d’expliquer le (ou les) sens d’un mot inconnu, de connaitre la classe gramma - ticale et le genre du mot, son étymologie (origine du mot), éventuellement de trouver des synonymes et antonymes du mot.

L2 - Algorithmique et structures de données (Année 2011/2012) Delacourt, Phan Luong, Poupet TP n o9 - Tables de hachage

Exercice 1.Enpython

Enpythonles tables de hachage sont appeléesdictionnaires. Dans un dictionnaire, on associe unevaleur

à uneclé.

Les clés peuvent être de presque n"importe quel type : entiers, chaînes de caractères, fonctions, éléments

d"une classe, etc. (mais pas une liste python). On peut créer un dictionnaire de plusieurs manières : d = {"a" : 12, "blop" : "blip", 42 : [1, 2, 3]} d = {} d["a"] = 12 d["blop"] = "blip" d[42] = [1, 2, 3] l = [("a", 12), ("blop", "blip"), (42, [1, 2, 3])] d = dict(l)

Pour accéder à la valeur d"un dictionnairedcorrespondant à la clékon utilise la syntaxed[k]. Par

exemple, sidest le dictionnaire défini prédemment,d["blop"]vaut la chaîne de caractères"blip".

1.Choisissez 5 mots de la langue française et créez un dictionnaire qui associe à chacun de ces mots

sa traduction en anglais. R. dic = { " chat " : " cat " , " chien " : "dog" , "vache" : "cow" , " tigre " : " tiger " , " licorne " : " unicorn " }

2.Ajoutez une entrée au dictionnaire de la question précédente (un nouveau mot et sa définition).

R. dic [ " souris " ] = "mouse"

Pour savoir si une clékest présente dans un dictionnairedon peut utiliser la syntaxed.has_key(k)

(qui renvoieTrueouFalse).

3.Écrivez une fonctionajoute(mot1, mot2, d)qui prend en argument un mot en français, sa

traduction en anglais et ajoute ces deux mots dans le dictionnaireduniquement simot1n"est pas une clé du dictionnaire (simot1apparaît dansdla fonction ne fait rien). R. defajoute (mot1 , mot2 , d) : if notd. has_key (mot1) : d[mot1] = mot2

Pour obtenir la liste de toutes les clés du dictionnaire, on utilise la syntaxed.keys()qui renvoie une

liste python contenant les clés.

4.Écrivez une fonction qui affiche à l"écran toutes les valeurs correspondant aux clés qui sont dans

votre dictionnaire (ici, tous les mots en anglais qui apparaissent dans votre dictionnaire). Indication :on exécute une boucleforsur tous les éléments ded.keys()et l"on renvoie pour chacun la valeur qui lui est associée. 1 R. defvaleurs (d) : forkind. keys () : printd[k] On aurait aussi pu utiliser la fonctiond.values()qui renvoie une liste contenant les valeurs du dictionnaire : defvaleurs (d) : forvind. values () : printv

Pour supprimer une entrée du dictionnaire, on peut utiliser la fonctiondel(qui permet de supprimer

une variable quelconque de manière générale). Ainsi, dans l"exemple initial, pour supprimer l"entrée

correspondant à la clé"blop"on peut utiliser l"instructiondel(d["blop"]).

5.Écrivez une fonctiondelete(char, dict)qui prend en argument un caractèrecharet un

dictionnairedictet supprime du dictionnaire toutes les entrées correspondant à des clés qui com-

mencent par la lettrechar. R. defdelete ( char , dict ) : forkindict . keys () : ifk[0] == char : del(d[k])

Exercice 2.Permutations

On considère des clés sur un ensemble de 256 caractères (l"alphabet ASCII 8 bits par exemple) et l"on

associe à chaque clé l"entier qu"elle représente en base 256. Ainsi, par exemple, puisque les caractèresB,l,oetpcorrespondent aux valeurs 66, 108, 111 et 112 respectivement, la clé " Blop » est associée à l"entier

66:2563+ 108:2562+ 111:256 + 112 = 1114402672

1.Écrivez une fonctionpythonqui prend en entrée une chaîne de caractères en ASCII 8 bits et renvoie

l"entier associé. Indication :On pourra utiliser la fonctionord(c)qui renvoie la valeur ASCII du caractèrec. R. defstr_to_int ( s ) : n = 0 forcins : n = n256 + ord( c ) returnn

Remarque :Cette fonction utilise le principe de la méthode de Horner pour évaluer le polynôme

a

0Xd+a1Xd1+:::+ad1X+ad

enX= 256, oùa0;a1;:::adsont les entiers correspondant aux lettres de la chaînespassée en argument. On peut aussi écrire une fonction au fonctionnement plus simple mais moins efficace : 2 defstr_to_int ( s ) : n = 0 foriinrange ( len ( s ) ) : n = n + ord( s [ i ])256( len ( s )i1) returnn

Si l"on utilise la fonction de hachage

h:x7!(xmod 255)

pour tout motx, si un motyest obtenu à partir dexpar permutation de ses lettres (mêmes lettres,

même nombre d"occurrences, mais l"ordre est quelconque) alorsh(x) =h(y).

2.Écrivez la fonctionhenpythonqui prend en argument une chaîne de caractères, la convertit en

entier puis le hache et vérifiez la propriété annoncée sur quelques exemples. R. defhachage ( s ) : returnstr_to_int ( s ) % 255 On peut ensuite remarquer quehachage("chien")ethachage("niche")renvoient la même valeur (en l"occurrence 9).

Remarque :Dès que les mots sont un peu longs (c"est déjà le cas pour " chien » et " niche »), le

résultat de la fonctionhachageest unentier long(ce qui est indiqué enPythonpar la lettre " L »

après la valeur numérique), bien que sa valeur soit petite (comprise entre 0 et 255). C"est dû au

fait que le calcul intermédiaire (la fonctionstr_to_int) passe par un entier très grand avant de

calculer le résultat modulo 255. On pourrait alléger le calcul en effectuant le modulo après chaque

étape de calcul dans le calcul de la fonctionstr_to_int: defhachage ( s ) : n = 0 forcins : n = (n256 + ord( c ) ) % 255 returnn Or, on remarque en faisant ceci que puisque2561 [255]la ligne n = (n256 + ord( c ) ) % 255 peut être remplacée par n = (n + ord( c ) ) % 255 ce qui simplifie encore le calcul, et permet de comprendre pourquoi l"ordre des lettres dans le mot de départ n"a pas d"importance...

3.Expliquez.

vrai que pour toutk,256k1 [255]. Ainsi, la fonction de hachage associe à une suite d"entiers a

0;a1;:::;adcorrespondant à une chaîne de caractèressla valeur

(a0:256d+a1:256d1+:::+ad1:256 +ad) mod 256 = (a0+a1+:::+ad1+ad) mod 256

Le résultat est donc simplement la somme des valeurs de chaque lettre, modulo 256, et ne dépend

donc pas de l"ordre dans lequel les lettres apparaissent dans le mot de départ. 3

Exercice 3.Le paradoxe des anniversaires

1.Si l"on considère un groupe deNpersonnes, quelle est la probabilité que deux d"entre elles soient

nées le même jour de l"année? (donnez simplement une expression de la probabilité)

R.On calcule d"abord la probabilité que toutes les personnes soient nées un jour différent (on né-

glige le 29 février et on compte donc une année de 365 jours). La première personne ne pose pas de

problème, la seconde a une probabilité 364/365 d"être née un jour différent de la première, la troi-

sième a une probabilité 363/365 d"être née un jour différent des deux précédentes, et ainsi de suite.

Finalement la probabilité que tous soient nés un jour différent est i=1365i 365
et donc la probabilité que deux personnes aient un anniversaire en commun est i=1365i 365

2.Écrivez la fonction pythonanniversaires(n)qui calcule la valeur numérique de la probabilité

qu"il existe 2 personnes parmi un groupe denpersonnes ayant leur anniversaire le même jour. En particulier, combien vaut cette probabilité pour un groupe de 23 personnes? R. defanniversaire (n) : p = 1. foriinrange (1 , n) : p = p(365i )/365 return1p

Remarque :Pour des raisons d"arrondis, cette fonction déclare que la probabilité pour plus de 153

personnes est 1. On pourrait calculer la valeur exacte sous la forme d"un rapport de deux entiers en utilisant la fonction defanniversaire (n) : numerateur = 1 foriinrange (1 , n) : numerateur = numerateur(365i ) denominateur = 365(n1) return( denominateurnumerateur , denominateur )

Cette fonction renvoie un couple qui représente le numérateur et le dénominateur de la probabilité

recherchée. CommePythonest capable de gérer des entiers arbitrairement grands il n"y a aucune erreur d"arrondi.

3.Quel est le rapport avec les tables de hachage?

R.La probabilité d"avoir une collision (deux clés hachées sur la même valeur) en insérantnclés dans

une table de hachage de taille 365 est la même que la probabilité d"avoir un conflits d"anniversaires.

une collision en insérantnvaleurs.

4.Généralisez la fonctionanniversairepour qu"elle calcule la probabilité que l"on obtienne une

collision en ajoutantnvaleurs dans une table de hachage de taillem. 4 R. defcollisions (n, m) : p = 1. foriinrange (1 , n) : p = p(mi )/m return1p

Remarque :On peut vérifier expérimentalement à l"aide de cette fonction que le nombre de clés à

insérer pour avoir une probabilité fixée d"avoir une collision est de l"ordre dep m(le plus simple est de calculer les valeurscollisions(n;n2)pour des valeurs dende plus en plus grandes et de remarquer que la probabilité converge). 5quotesdbs_dbs22.pdfusesText_28
[PDF] comment lire un article de dictionnaire

[PDF] étudier un article de dictionnaire

[PDF] comment manipuler un dictionnaire

[PDF] lire un article de dictionnaire 6ème

[PDF] entrée dans le dictionnaire mots fleches

[PDF] analyser un article de dictionnaire

[PDF] un livre ça sert ? quoi bout de gomme

[PDF] a quoi ca sert de lire

[PDF] comment utiliser le manuel scolaire en algérie

[PDF] la différence entre le programme et le manuel scolaire

[PDF] analyse didactique des manuels scolaires

[PDF] principe de fonctionnement d'un relais pdf

[PDF] relais electronique pdf

[PDF] relais électromagnétique cours

[PDF] branchement relais 12v klaxon