Adloun

informatique (MP2I/MPI) · Chapitre 12 · Exercice de TD

Le facteur de charge, et ce qu'il permet de prévoir

Tableaux associatifs, hachage et sérialisation · niveau 2

Énoncé

Une table à chaînage contient clés dans cases, la fonction de hachage répartissant uniformément.

  • Combien de cases sont vides, en moyenne ?
  • Quel est le coût moyen d'une recherche fructueuse ? Infructueuse ?
  • Vérifier ces prévisions.

Corrigé

1. Les cases vides. Une case donnée reçoit une clé donnée avec probabilité ; elle reste vide après tirages indépendants avec probabilité , qui vaut à la limite, où . Le nombre moyen de cases vides est donc

Le cas mérite d'être retenu : même en dimensionnant la table exactement au nombre de clés, des cases restent vides — et donc des clés se pressent ailleurs. On ne remplit jamais une table de hachage uniformément.

2. Le coût des recherches.

  • Infructueuse : on parcourt toute la chaîne de la case visée, dont la longueur moyenne est . Coût : comparaisons — le pour le calcul du haché.
  • Fructueuse : la clé cherchée est à une position moyenne de dans sa chaîne. Plus précisément, si la -ième clé insérée trouve clés en moyenne devant elle, le coût moyen sur les clés vaut .

Dans les deux cas, le coût dépend de et pas de . C'est tout le principe : on redimensionne dès que dépasse un seuil, et le coût reste borné. La recopie coûte , mais elle est amortie sur les insertions qui l'ont précédée — exactement le calcul du tableau dynamique du chapitre chap:algo-prog.

3. Les mesures. Table à chaînage écrite en C, mots, , donc :

mesuréprévu
recherche fructueuse sondages
recherche infructueuse sondages
plus longue chaîne—

Et sur le remplissage, par tirage uniforme :

cases vides mesurées
(60{,}6%) (60{,}7%)
(36{,}8%) (36{,}8%)
(1{,}2%) (1{,}5%)

La théorie tombe juste à quatre chiffres. Ce n'est pas une coïncidence, c'est ce que veut dire « en moyenne » : ces formules décrivent le comportement d'une table dont la fonction de hachage disperse bien, et rien d'autre. Avec h_somme de l'exercice précédent, elles seraient fausses d'un facteur .

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre