Godzil (./96) :
Au contraire, avec une table parfaitement homogène, toutes les cases ont la même probabilité de pointer sur la liste contenant le mot recherché. On minimise donc le nombre moyen d'itérations pour trouver un mot dans tout ce bordel.Avec un algo de hachage qui construit une table peu homogène, le nombre moyen d'itérations pour trouver un mot sera plus élevé qu'avec un algo qui donne une table parfaitement homogène.
C'est exactement a quoi servent les infos que donne les tableaux que j'ai généré...
Ben non, la seule info vraiment utile dans ton tableau c'est LCL, mais elle ne donne la performance que dans le pire des cas : c'est une mesure intéressante, mais c'est pas forcément représentatif du comportement de l'algorithme dans tous les cas ; généralement, on préfère avoir une idée du cas moyen, i.e. on veut connaître la taille moyenne de chaque case pondérée par le poids relatif qu'elle a (donc en fait c'est le moment d'ordre 2 de la taille des cases, qui est égale à la variance à une constante près).
Thibaut (./95) :
Voilà pourquoi mon critère est unique : l'écart type (qui prend en compte les cases vides, puisque celles-ci impliquent le fait que d'autres cases sont trop pleines). La table idéale, donc l'algo idéal, produit un écart type de zéro.
Un écart type proche de zéro exigerait une adaptation de la fonction de hash aux données qui lui sont fournies ; ce n'est pas le cas d'une "vraie" fonction de hash, qui idéalement donne des cases dont la taille suit une distribution de Poisson... Donc l'écart-type théorique devrait être la racine carrée de la moyenne. On peut savoir si une fonction de hash n'est pas idéale : si son écart-type mesuré est très différent de la racine carrée de la moyenne ^^ (erreur relative très supérieure à 1/sqrt(256))
(par contre tes chiffres pour la variance correspondent pas du tout, tu es sûr que c'est bien la variance que tu calcules ? parce que dans le pire des cas [fonction de hash constante] on peut avoir une variance de 4000^2/256 = 62500, mais certainement pas 230000 ; et puis évidemment même 1472 ça reste bcp pour une fonction de hash correcte)