Hash Algorithm Visualizzazione della casualità

5

Sono curioso se qualcuno qui ha qualche idea di come sono state generate le immagini come mostrato in questa risposta: Quale algoritmo di hashing è il migliore per unicità e velocità?

Ian ha postato una risposta molto ben accolta ma non riesco a capire come abbia fatto le immagini. Odio fare una nuova domanda dedicata a questo, ma non riesco a trovare alcun mezzo per chiedergli più direttamente. D'altra parte, forse qualcuno ha una prospettiva alternativa.

Il meglio che posso fare personalmente è di avere quasi un grafico a barre, che illustra come vengono generati in modo uniforme i bucket della tabella hash. Ho un programma Cocoa funzionante che fa questo, ma non può generare nulla di simile a ciò che ha mostrato lì.

Quindi la domanda è due volte suppongo:

A) come si interpretano veramente i dati che mostra? È più che "meno spazio = migliore"?

B) Come si genera un'immagine del genere basata su un insieme di input, un hash e un indice?

Forse sto fraintendendo completamente, ma mi piacerebbe davvero saperne di più su questa particolare tecnica di visualizzazione. O forse sto applicando male questo a tabelle hash piuttosto che a semplici hash in generale, ma in quel caso non so come sarebbe "limitato" per l'immagine.

    
posta clstroud 27.11.2012 - 00:02
fonte

1 risposta

1

Dal commento di Ian nella risposta

Development tool is Delphi. i assume you mean the images though. For "linear" map i created a square bitmap of size nxn, (where n = Ceil(sqrt(hashTable.Capacity))). Rather than simply black for list entry is occupied and white for list entry is empty, i used an HSLtoRGB function, where the hue ranged from 0 (red) to 300 (magenta). White is still an "empty list cell". For the Hilbert map i had to hunt wikipedia for the algorithm that turns an index into an (x,y) coordinate.

Fondamentalmente, un "pattern" visivamente meno identificabile è migliore in quanto significa che l'hash è più veramente casuale. Grandi buchi (spazio bianco) indicherebbero che l'hash non sta diffondendo i valori particolarmente bene.

    
risposta data 27.11.2012 - 00:23
fonte

Leggi altre domande sui tag