Domanda

Hai qualche consiglio/regola sulla selezione di un moltiplicatore da utilizzare in una funzione hash (moltiplicativa).La funzione sta calcolando il valore hash di una stringa.

È stato utile?

Soluzione

Vuoi usare qualcosa che sia relativamente importante per le dimensioni del tuo set.In questo modo, quando effettui il giro, non ti ritroverai sugli stessi numeri che hai appena provato.

Altri suggerimenti

Recentemente ho avuto una discussione interessante con un collega sulla funzione hash.Le nostre conclusioni sono state le seguenti:

Se hai davvero bisogno di scrivere una buona funzione hash che minimizzi le collisioni più delle implementazioni predefinite disponibili nei linguaggi standard, hai bisogno di una laurea avanzata in matematica.

Se stai scrivendo applicazioni in cui una funzione hash personalizzata migliorerà notevolmente le prestazioni della tua applicazione, sei Google e hai molti dottorandi in matematica per svolgere il lavoro.

Mi dispiace non rispondere direttamente alla tua domanda, ma la conclusione è che non c'è davvero bisogno di scrivere la propria funzione hash per String.Con che lingua stai lavorando?Immagino che esista un modo semplice per calcolare un codice hash "abbastanza buono".

Storicamente 33 sembra una scelta popolare e tende a funzionare piuttosto bene.Nessuno sa perché però.Per ulteriori dettagli, guarda qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top