Frage

Haben Sie Ratschläge/Regeln zur Auswahl eines Multiplikators für die Verwendung in einer (multiplikativen) Hash-Funktion?Die Funktion berechnet den Hashwert einer Zeichenfolge.

War es hilfreich?

Lösung

Sie möchten etwas verwenden, das relativ gut zur Größe Ihres Sets passt.Auf diese Weise landen Sie beim Durchlaufen nicht bei den gleichen Nummern, die Sie gerade ausprobiert haben.

Andere Tipps

Ich hatte kürzlich eine interessante Diskussion mit einem Kollegen über die Hash-Funktion.Unsere Schlussfolgerungen waren wie folgt:

Wenn Sie wirklich eine gute Hash-Funktion schreiben müssen, die Kollisionen stärker minimiert als die in den Standardsprachen verfügbaren Standardimplementierungen, benötigen Sie einen fortgeschrittenen Abschluss in Mathematik.

Wenn Sie Anwendungen schreiben, bei denen eine benutzerdefinierte Hash-Funktion die Leistung Ihrer Anwendung spürbar verbessert, sind Sie Google und haben viele promovierte Mathematiker, die diese Arbeit erledigen.

Es tut mir leid, Ihre Frage nicht direkt zu beantworten, aber im Grunde besteht keine Notwendigkeit, eine eigene Hash-Funktion für String zu schreiben.Mit welcher Sprache arbeiten Sie?Ich könnte mir vorstellen, dass es eine einfache Möglichkeit gibt, einen „ausreichend guten“ Hash-Code zu berechnen.

Historisch gesehen scheint 33 eine beliebte Wahl zu sein, und sie funktioniert in der Regel ziemlich gut.Niemand weiß jedoch warum.Für mehr Details, Schau hier

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top