Vous êtes sur la page 1sur 5

Travaux Dirigés: Table de hachage page 1

Exercice I
Considérer la fonction de hachage h(k) = k mod m et une table de hachage avec
m = 13 adresses.

Question 1 – Insérer les clés 26,37,24,30, et 11 dans la table de hachage en uti-


lisant la résolution des collisions par adressage ouvert et sondage linéaire avec la
fonction hi (k) = (h(k) + i)mod m.

Question 2 – Quelle est la probabilité qu’une clé soit placée dans une case vide
précédée de p cases pleines ?

Question 3 – En Rajoutant maintenant les clés 1,2,3,4,5,6,7,8,9,10 dans le ta-


bleau, résoudre la collision par chaînage séparé.

Question 4 – Donner l’algorithme d’une fonction permettant de vérifier si un


élément x est contenu dans la table.

Exercice II
Etant donnés un tableau de hachage de dimension m, et une fonction de ha-
chage uniforme à valeur dans [1..m].

Question 5 – Montrer que si l’on doit traiter n éléments, la probabilité pour


que k éléments aient une même valeur de hachage primaire donné est : P (k) =
Cnk ( m1 )n ( m−1
m
)n−k

Question 6 – Montrer que si m et n tendent vers l’infini, le rapport n/m restant


fixé, cette probabilité tend vers une loi de Poisson de paramètre α = n/m, c’est à
k
dire : P (k) = e−α αk! .

Exercice III

GHISLAIN PANDRY
Ò

Ò ã ïï ¿å ¾å ½å æ æ æ å µ

¿ ¾ ½ ¼ » º ¹ ¸ · ¶ µ

Ò ã ïê
á

¿å ¾å æ æ æ å µ
¿ ¾ ½ ¼ » º ¹ ¸ · ¶ µ

¿å ¾å ½å ¼å »å ºå ¹å ¸

º ¹ á á ¼ ¿ ¸ á á á ¾ » á á á ½

¸
¶ ·

·å ¶å µ

¸

Travaux Dirigés: Table de hachage page 3

Exercice IV
La taille de la table de hachage est notée m. Si p et q sont deux entiers naturels,
p mod q est le reste de la division euclidienne de p par q. On considère les fonctions
de hachage h1 (k) = k mod m et h2 (k) = k mod (m − 1)

Question 7 – Insérer successivement les clés 11, 22, 31, 4, 15, 28, 17, 88 et 59
dans une table de hachage de taille m = 11 gérée en adressage ouvert en utilisant
comme fonction de hachage principale h(k, i) = (h1 (k) + i) mod m.

Question 8 – Même question lorsque h(k, i) = (h1 (k) + ih2 (k)) mod m.

GHISLAIN PANDRY
Exercice 10
On considère l'ensemble de 13 mots dont les valeurs hachées par une fonction de hachage
f sont décrites ci-dessous :
mot valeur hachée (en hexadécimal)
01 le FF2E
02 cours 178DD38
03 d'  75EA33
04 algorithmique 35CE5
05 de 9AA8BF1
06 ROB3 2738
07 est A4C74
08 absolument 1CA4C74
09 génial 14D26
10 j'adore 5A38
11 faire 1BAE5
12 ses 65B4EE5
13 TDs 8C74

Pour chaque type de table de hachage ci-dessous, indiquez ce que l'on obtiendrait si l'on
partait d'une table vide de taille 16 et que l'on insérait dans l'ordre tous les mots ci-dessus
avec une fonction de hachage f (k) = k mod 16.
1. Résolution des collisions par chaînage,

2. Adressage ouvert et probing linéaire h(k, i) = (f (k) + i) mod 16,


i2
3. Adressage ouvert et probing quadratique h(k, i) = (f (k) + 2i + 2
) mod 16.
Pour les adressages ouverts, calculez le nombre de probes à eectuer en moyenne pour obtenir
un élément donné dans la table. Déduisez-en le meilleur des deux probings.
Exercice 11
On considère l'ensemble de couples (clé,valeur) suivant :

mot clé (en décimal)


01 le 123
02 cours 22
03 d'  88
04 algorithmique 33
05 de 4
06 ROB3 28
07 est 73
08 absolument 7
09 génial 15

Question 11.1 Calculez les valeurs hachées des clés obtenues pour chaque couple par les
fonctions ci-dessous :
 f1 (x) = x
 f2 (x) = 10x
 f3 (x) = 2x

0 si x=0
 f4 (x) =
8f4 (x/10) + x mod 10 sinon

Question 11.2 Supposons que l'on veuille insérer les mots ci-dessus dans une table de ha-chage
de longueur 10. On veut hacher les clés des mots en utilisant la fonction f(x) = g(x) mod 10, où g
∈ {f1, f2, f3, f4}. Quel est le meilleur choix pour g ? Expliquez pourquoi.
Exercice 12
Le double hachage est l'une des meilleures méthodes connues pour l'adressage ouvert. Il
utilise une fonction de hachage de la forme :

N × N → {0, . . . , m − 1}
h:
(k, i) → (h1 (k) + ih2 (k)) mod m

où h1 et h2 sont des fonctions de hachage auxiliaire simples.

Question 12.1 Insérez les clés k = 5, 28, 19, 15, 20, 33 dans une table de taille m = 13
(indicée de 0 à 12) en utilisant le double hachage h(k, i) = h1 (k) + ih2 (k) avec h1 (k) =
k mod 13 et h2 (k) = 1 + (k mod 12).

Question 12.2 En quoi est-ce gênant si h2(k) et m ne sont pas premiers entre eux ?

Vous aimerez peut-être aussi