Cos'è una buona funzione Hash? Ho visto molte funzioni di hash e applicazioni nei miei corsi di strutture di dati al college, ma per lo più ho capito che è abbastanza difficile fare una buona funzione di hash. Come regola generale per evitare le collisioni il mio professore ha affermato che:
function Hash(key)
return key mod PrimeNumber
end
(mod è l'operatore% in C e lingue simili)
con il numero primo per essere la dimensione della tabella hash. Capisco che sia una buona funzione per evitare le collisioni e una veloce, ma come posso fare una migliore? Esistono funzioni hash migliori per i tasti stringa rispetto ai tasti numerici?