¿Tiene algún consejo o regla sobre cómo seleccionar un multiplicador para usarlo en una función hash (multiplicativa). La función es calcular el valor hash de una cadena.Elección de un multiplicador para una función de hash (cadena)
Respuesta
Desea utilizar algo que sea relativamente primordial para el tamaño de su conjunto. De esta forma, cuando vuelves, no terminarás con los mismos números que acabas de probar.
Históricamente 33 parece ser una opción popular, y tiende a funcionar bastante bien. Sin embargo, nadie sabe por qué. Para obtener más detalles, look here
Tuve una discusión interesante con un compañero de trabajo sobre la función hash recientemente. Nuestras conclusiones fueron las siguientes:
Si realmente necesita escribir una buena función hash que minimice las colisiones más que las implementaciones predeterminadas disponibles en los lenguajes estándar, necesita un título avanzado en matemáticas.
Si está escribiendo aplicaciones en las que una función de hash personalizada mejorará notablemente el rendimiento de su aplicación, usted es Google y tiene muchos doctores en matemáticas para hacer el trabajo.
Lamentamos no haber respondido directamente a su pregunta, pero la conclusión es que realmente no hay necesidad de escribir su propia función hash para String. ¿Con qué idioma estás trabajando? Me imagino que hay una forma fácil de calcular un código hash "suficientemente bueno".
- 1. Función hash para una cadena
- 2. Elección de un tamaño de tabla adecuado para un hash
- 3. Una función hash rápida para una cadena en C#
- 4. ¿Cómo harías para diseñar una función para un hash perfecto?
- 5. ¿Función hash para un par de largo?
- 6. C++ función hash para una matriz int
- 7. ¿Tiene una buena función hash para una tabla hash C++?
- 8. transformación de etiquetas de eje con un multiplicador ggplot2
- 9. Hash de una cadena de longitud específica
- 10. Función hash para cadenas cortas
- 11. Construyendo una función hash/tabla hash
- 12. ¿Una función hash mínima para C?
- 13. Función hash recomendada para sobreescribir el método hash de NSObject
- 14. ¿Buena función hash para permutaciones?
- 15. función Hash para los flotadores
- 16. ¿Hay una función hash circular?
- 17. djb2 función hash
- 18. Cómo analizar una representación de cadena de un hash
- 19. Convertir hash para una cadena de caracteres hexadecimal
- 20. Buscando una rápida función hash
- 21. ¿Cómo puedo generar un hash largo de una cadena?
- 22. ¿Cómo obtener un hash MD5 de una cadena en Golang?
- 23. pasar un hash de una función (* args) y su significado
- 24. Cómo crear un hash MD5 de una cadena en RubyMotion
- 25. Cómo crear un hash md5 de una cadena en C?
- 26. ¿Cómo creo un Hash MD5 de una cadena en Cocoa?
- 27. ¿Qué es una buena función hash?
- 28. GPU- Función hash de "prueba"
- 29. Elección de un idioma intermedio
- 30. hash de tamaño de cadena
La siguiente página tiene varias implementaciones de funciones hash de propósito general que son eficientes y exhiben colisiones mínimas: http://partow.net/programming/hashfunctions/index.html –