Sono curioso di sapere se esiste un modo per memorizzare un hash di un set multiplo di numeri interi che abbia le seguenti proprietà, idealmente:
- Usa lo spazio O (1)
- Può essere aggiornato per riflettere un inserimento o una cancellazione nel tempo O (1)
- Due raccolte identiche (ovvero raccolte che hanno gli stessi elementi con le stesse molteplicità) devono sempre avere lo stesso valore e due raccolte distinte devono avere hash a valori diversi con alta probabilità (ovvero la funzione è indipendente o indipendente dalla coppia)
Un primo tentativo sarebbe quello di memorizzare il modulo modulo in un numero casuale casuale di hash dei singoli elementi. Questo soddisfa 1 e 2 ma non è chiaro se esso, o una variazione stretta, soddisferebbe 3.
Inizialmente l'ho pubblicato su StackOverflow .
* Le proprietà 1 e 2 potrebbero essere leggermente rilassate, ad esempio O (log n) o un piccolo polinomio sublineare. Il punto è vedere se siamo in grado di identificare più insiemi e testare in modo affidabile l'uguaglianza senza memorizzare gli elementi stessi.