J'ai une classe qui représente les arêtes non orientées dans un graphique. Chaque arête a deux membres vertex1
et vertex2
représentant les sommets qu'elle relie. Le problème est, qu'un bord peut être spécifié deux directions. Mon idée était maintenant de définir le hachage d'un bord comme la somme des hachages de ses sommets. De cette façon, la direction ne joue plus aucun rôle, le hachage serait le même. Y a-t-il des pièges avec ça?Définition du hachage d'un objet comme somme des hachages de ses membres
3
A
Répondre
3
J'ai dû résoudre un problème similaire et j'ai trouvé que l'utilisation de la somme des hachages comme un hachage entraînait trop de collisions. La distribution de la somme des hashes n'est pas assez étalée.
J'ai trouvé que l'utilisation du produit de hachage entraînait beaucoup moins de collisions. Cela dépend bien sûr de la nature des hachages pour les sommets individuels.
Mettre en place un banc d'essai et tester quelques fonctions symétriques de hachage, puis choisir la meilleure basée sur les collisions.
Vous pouvez essayer
h(x,y) = x+y
h(x,y) = x*y
h(x,y) = x * y + (x^y)
h(x,y) = x *y + x + y
où x^y = min (x, y)
Questions connexes
- 1. Comment trier pas simple hachage (hachage de hachages)
- 2. Créer un UDT qui a SQL @tables comme ses membres
- 3. Définition de plusieurs fonctions de hachage pour le même objet
- 4. tri des hachages/tableaux dans awk
- 5. somme de hash basée sur d'autres champs de hachage
- 6. Comment puis-je créer un hachage de hachages à partir d'un tableau de hachages en Perl?
- 7. Opérations sur les hachages Python
- 8. Définition d'un objet HBITMAP comme fond d'écran
- 9. Existe-t-il un moyen élégant de supprimer une clé spécifique d'un hachage et ses sous-hachages dans Ruby
- 10. Comment obtenir une tranche de hachage à partir d'un hachage de hachages?
- 11. Comment créer et ajouter des hachages anonymes à un hachage connu pendant l'exécution du script?
- 12. Comment puis-je récupérer un hash ref d'un tableau de hachages par l'une de ses valeurs?
- 13. Perl, vérifiez si la paire existe dans hachage de hachages
- 14. Contrôles d'accès directement via ses variables membres
- 15. Comment puis-je créer un hachage de hachages en Perl?
- 16. passage des valeurs d'objet de hachage comme paramètre de recherche
- 17. Nom mangling des classes C++ et ses fonctions membres?
- 18. NullReferenceException lors de la définition des membres d'objets
- 19. Comment changer le format des hachages imbriqués
- 20. Passer une structure par valeur, avec une autre structure comme l'un de ses membres, change les valeurs des membres de ce membre
- 21. syntaxe pour .max/.min et la somme des valeurs de hachage
- 22. jquery - définition de l'URL après le hachage
- 23. hachage comme argument def
- 24. Définition du focus sur un objet MsgBox
- 25. Définir setter pour les membres de hachage en JavaScript
- 26. Initialisation de membres avec des membres
- 27. Ruby: actes_as_tree aux hachages imbriqués (tableaux de hachages)
- 28. DRY façon d'attribuer des valeurs de hachage à un objet
- 29. Les hachages littéraux dans C#?
- 30. Création d'un objet à partir d'une table de hachage C#
Serait-il judicieux d'inclure également x^y comme un combinateur de hachage possible? – Vatine
Si x^y = min (x, y) alors oui :-) –