Fonction de hachage

Il existe une paire d'éléments de hachage a et b.
Nous pouvons utiliser la formule suivante pour créer une fonction de hachage. La
Insérez la description de l'image ici
liaison magnétique a un total de 16 bits et la plage de valeurs de chaque bit est de 0 à f. appelé code de hachage,
c'est-à-dire le retour de la valeur de la fonction de hachage.

Encyclopédie Baidu: Qu'est-ce qu'un code de hachage exactement?
Réponse: hashCode est une valeur de type int calculée par jdk en fonction de l'adresse ou de la chaîne ou du numéro de l'objet

Quelle est la plage de valeurs pouvant être représentée? ? ? ? ? ? ? ? : Chacun est de 2 à la 16e puissance, un total de 16 bits, donc 16 2 à la 16e puissance.
Insérez la description de l'image ici
La nature de la
fonction de hachage : le domaine d'entrée de la fonction de hachage peut être une très grande plage , par exemple, n'importe quelle chaîne, mais le domaine de sortie est une plage fixe (un certain nombre de bits), en supposant qu'il est S (bien que S peut être très grand, mais pas comparable au champ de saisie), et possède les propriétés suivantes:

  1. Une fonction de hachage typique a une plage d'entrée infinie .
  2. Lorsque la même valeur d'entrée est transmise à la fonction de hachage, la valeur de retour est la même.
  3. Lorsque vous transmettez différentes valeurs d'entrée à la fonction de hachage, la valeur de retour peut être identique ou différente. Bien sûr, comme le domaine de sortie est uniformément S, il y aura différentes valeurs d'entrée correspondant à un élément de S (une condition appelée collision de hachage ).
  4. La propriété la plus importante est que les valeurs de retour obtenues à partir de nombreuses valeurs d'entrée différentes seront uniformément réparties sur S. C'est la clé pour évaluer les avantages et les inconvénients d'une fonction de hachage . Plus toutes les valeurs de retour obtenues à partir de différentes valeurs d'entrée sont réparties uniformément sur S, meilleure est la fonction de hachage , et cette distribution uniforme n'a rien à voir avec la régularité des valeurs d'entrée. Par exemple, les trois valeurs d'entrée de "aaa1", "aaa2" et "aaa3" sont relativement similaires, mais les résultats obtenus après un excellent calcul de fonction de hachage devraient être très différents.
  5. Discrétion de la fonction de hachage: par exemple, il sera clair que le domaine d'entrée est compris entre 0 et 98 et le domaine de sortie est 0 1 2

Donnez-moi 99 échantillons différents, et calculez les différentes sorties 0 1 2 ces trois valeurs à tour de rôle.
En gros, après le calcul, on peut dire qu'il
y a 33 entrées réparties en position 0
, 33 entrées réparties en position 1
et 33 entrées réparties sur 2 emplacements

Les trois premières propriétés sont la base de la fonction de hachage et le quatrième point est la clé pour évaluer les avantages et les inconvénients d'une fonction de hachage . Plus toutes les valeurs de retour obtenues à partir de différentes valeurs d'entrée sont réparties sur S, meilleure est la fonction de hachage , et cette distribution uniforme n'a rien à voir avec la loi d'apparition de la valeur d'entrée.

Par exemple, les trois valeurs d'entrée de "aaa1", "aaa2" et "aaa3" sont relativement similaires, mais les résultats obtenus après un excellent calcul de fonction de hachage devraient être très différents.

Par exemple, dans une pièce. Brisant un flacon de parfum, les molécules de ces parfums resteront immobiles. La fonction de hachage est le processus qui la perturbe complètement.

Nous déterminons la trajectoire de chaque molécule de parfum grâce à une fonction de hachage Une fois la fonction de hachage calculée, les molécules de parfum seront uniformément réparties dans toute la pièce!
Insérez la description de l'image ici

La fonction de hachage n'est pas une fonction aléatoire, elle n'a pas de composants aléatoires, une fois l'échantillon fixé, la valeur de retour doit être déterminée!

La fonction de hachage perturbera les règles d'entrée.

La valeur de retour calculée par la fonction de hachage n'a rien à voir avec votre règle d'entrée d'origine!
Insérez la description de l'image ici
Insérez la description de l'image ici
Et uniformément réparti sur 0-1.
Par exemple,
Insérez la description de l'image ici
s'il est uniformément réparti sur 0-98, alors il est également réparti uniformément sur 0-2

L'intervieweur ne nous laissera pas implémenter la fonction de hachage, car il existe de nombreux algorithmes de fonction de hachage

Un caractère hexadécimal est égal à 4 octets binaires. 16 = 2 ^ 4. En
supposant qu'une fonction de hachage obtient la gamme de 2 à la puissance 64ème,
donc nous avons besoin 2 à la puissance 8 multiplié par 2 à la puissance 16.
Insérez la description de l'image ici
Nous obtenons la result En deux lots,
Insérez la description de l'image ici
Insérez la description de l'image ici
h3 est indépendant de h1 et h2.
Insérez la description de l'image ici
Nous pouvons créer 1000 fonctions de hachage à des
positions 0 pour obtenir une distribution uniforme de 0-f et d'autres positions pour obtenir une distribution uniforme de 0-f, qui sont indépendantes les unes des autres .
Ainsi, nous pouvons obtenir plusieurs fonctions de hachage en combinant différentes positions
Insérez la description de l'image ici

La fonction de hachage est extrêmement importante, encore plus importante
que la table de hachage, car l'implémentation de la table de hachage doit connaître la nature de la fonction de hachage!

Débutant 6 vient de commencer

Je suppose que tu aimes

Origine blog.csdn.net/Mr_zhang66/article/details/109374701
conseillé
Classement