Comprimere 4 byte in 1 byte
Moderatore:
Paolino
26 messaggi
• Pagina 3 di 3 • 1, 2, 3
2
voti
4 byte per descrivere un numero vuol dire che ne puoi avere piu` di 4 miliardi. Un byte per lo hash vuol dire che al piu` hai 256 combinazioni.
Supponi di avere tanti granelli di riso, ciascuno rappresenta uno dei diversi codici rappresentati su 4 byte, e 256 contenitori per tenere il riso. Se hai piu` di 257 granelli ci sara` di sicuro un contenitore che ne contiene almeno due, e quindi con 257 parole di 4 byte, QUALUNQUE SIA L'ALGORITMO, avrai almeno due hash uguali.
Supponi di avere tanti granelli di riso, ciascuno rappresenta uno dei diversi codici rappresentati su 4 byte, e 256 contenitori per tenere il riso. Se hai piu` di 257 granelli ci sara` di sicuro un contenitore che ne contiene almeno due, e quindi con 257 parole di 4 byte, QUALUNQUE SIA L'ALGORITMO, avrai almeno due hash uguali.
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
0
voti
hai ragione, meglio usare i i block-value con magari una eeprom esterna se non mi basta. la sicurezza prima di tutto! mi è venuta in mente poco prima che scrivevi questa situazioni delle combinazioni... in sostanza usando 4 byte si hanno meno probabilità di avere un tag con lo stesso valore al posto di usare solo 1 byte. Grazie comunque di tutto :)
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
4
voti
Aggiungo una nota. Gli algoritmi di hashing funzionano sul principio che l'oggetto da comprimere esiste in uno spazio "naturale" molto più grande di quello degli oggetti ammissibili.
Un caso tipico sono i testi in linguaggio naturale, dove, dato un alfabeto, le possibili k-stringhe di senso compiuto sono molte meno rispetto a tutte le possibili k-stringhe. In questo caso si può costruire una relazione fra un insieme grande. In base a come questa relazione è definita si sta costruendo un algoritmo di compressione lossy/loss-less o un digest.
In questo ultimo caso la speranza è che non si verifichino troppe collisioni.
Il problema è che tu non hai a che fare con un insieme di dati "rarefatto" ma numeri seriali, il cui dominio occupa tutto lo spazio naturale di definizione. La compressione è quindi impossibile perché determinerà sempre una perdita di informazione, indipendentemente dal codice che scegli :). Idem per le collisioni.
Nota che la principale differenza fra un algoritmo di compressione con perdita e un digester sono le specifiche di reversibilità.
Un caso tipico sono i testi in linguaggio naturale, dove, dato un alfabeto, le possibili k-stringhe di senso compiuto sono molte meno rispetto a tutte le possibili k-stringhe. In questo caso si può costruire una relazione fra un insieme grande. In base a come questa relazione è definita si sta costruendo un algoritmo di compressione lossy/loss-less o un digest.
In questo ultimo caso la speranza è che non si verifichino troppe collisioni.
Il problema è che tu non hai a che fare con un insieme di dati "rarefatto" ma numeri seriali, il cui dominio occupa tutto lo spazio naturale di definizione. La compressione è quindi impossibile perché determinerà sempre una perdita di informazione, indipendentemente dal codice che scegli :). Idem per le collisioni.
Nota che la principale differenza fra un algoritmo di compressione con perdita e un digester sono le specifiche di reversibilità.
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
1
voti
Se il micro che usi lo permette, puoi memorizzare i dati oltre che sulla eeprom anche sulla flash.
Inoltre, a secondo il tipo di micro, puoi memorizzare due byte in ogni word della flash in modo da dimezzare lo spazio occupato.
Inoltre, a secondo il tipo di micro, puoi memorizzare due byte in ogni word della flash in modo da dimezzare lo spazio occupato.
0
voti
Grazie per il consiglio, ma ho optato per una eeprom esterna: SST25VF016B
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
26 messaggi
• Pagina 3 di 3 • 1, 2, 3
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 6 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

