Classificazione delle funzioni hash

9

Su Internet, ho trovato questa domanda:

Classify the Hashing Functions based on the various methods by which the key value is found.

con risposte come

  • Metodo diretto
  • Metodo di sottrazione
  • Metodo Modulo-Division
  • Metodo di estrazione della cifra
  • Metodo a metà quadrato
  • Metodo di piegatura
  • Metodo pseudo-casuale

che trovo strano Penso di sapere molto sull'hashing, ma questo per me è semplicemente incomprensibile, qualcuno potrebbe spiegarlo?

    
posta maaartinus 31.12.2012 - 00:05
fonte

1 risposta

4

Sono metodi per trasformare un hashcode in un indice dell'array che contiene i valori. Diciamo che hai un hashcode di 0x12345678. Un numero molto grande ed è improbabile che tu abbia un array di queste dimensioni. Se lo fai puoi solo fare

Value = array[0x12345678];

E fatti (metodo diretto).

Se non lo fai, hai un modo per trasformare questo valore in uno che si adatta alle dimensioni dell'array mentre cerchi di evitare troppe collisioni. I termini utilizzati sono probabilmente noti anche con altri nomi, ma per esempio puoi semplicemente mascherare i bit più alti dell'hashcode

Value = array[hashcode & 0xffff];

Oppure mod l'hashcode rispetto alla dimensione dell'array

Value = array[hashcode % array.size()]; // modulo division

Ecc ecc

Modifica: questo link può aiutare

    
risposta data 31.12.2012 - 04:56
fonte

Leggi altre domande sui tag