Je connais bien tous les problèmes liés à la comparaison des flotteurs. C'est exactement la raison de cette question.
Je cherche à créer une table de hachage rapide pour les valeurs qui sont des vecteurs 3D (3 flottants - x, y, z). On peut supposer que la longueur du vecteur est toujours 1.0 (est 1.0)Bonne façon de hacher un vecteur de flotteur?
Essentiellement, cela signifie que je cherche une fonction de hachage qui prend des valeurs qui sont presque égales à la même valeur int non signée et un correspondant opérateur d'égalité qui est vrai si les valeurs de hachage sont égales (non pas nécessairement seulement si elles sont égales)
Modifier -
faux positifs (c.-à-vecteurs qui sont différents, mais tracent le même seau) sont une donnée depuis c'est une table de hachage.
Les faux négatifs (c'est-à-dire les vecteurs rapprochés mais mappés à des godets différents) ne sont pas souhaitables, mais il semble qu'il n'y ait aucun moyen de les éviter. Dans mon cas, ils ne provoqueront pas de bris total, juste une duplication de données qui est quelque chose que je vais devoir vivre avec.
Quelle question intéressante! –
Avez-vous envisagé d'utiliser une ou plusieurs des fonctions de hachage à usage général suivantes: http://www.partow.net/programming/hashfunctions/index.html elles sont extrêmement rapides et efficaces. –
En relation: [Comment trouver la valeur de hachage d'un vecteur 3D?] (Http://stackoverflow.com/questions/2582340/how-do-i-find-hash-value-of-a-3d-vector) – legends2k