Numéro magique dans boost :: hash_combine
-
07-11-2019 - |
Question
La boost::hash_combine
La fonction de modèle prend une référence à un hachage (appelé seed
) et un objet v
. Selon le docs, il combine seed
avec le hachage de v
par
seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
Je peux voir que c'est déterministe. Je vois pourquoi un XOR est utilisé.
Je parie que l'ajout aide à cartographier des valeurs similaires largement séparées, de sorte que sonder les tables de hachage ne se décomposera pas, mais quelqu'un peut-il expliquer quelle est la constante magique?
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow