Existe-t-il une structure de données de mots-RAM de w bits avec O (1) temps par opération pour le problème suivant?: Maintenir un ensemble d'entiers non négatifs de w bits qui prend en charge les opérations
- add (x): ajoutez x à l'ensemble
- remove (x): supprime x de l'ensemble
- fingerprint (): retourne une empreinte digitale de l'ensemble. Cette empreinte numérique w-bit a la propriété que deux ensembles identiques ont la même empreinte digitale tandis que deux ensembles différents ont probablement des empreintes digitales différentes
Toutes les opérations doivent s'exécuter en temps constant.
ds.data-structures
Pat Morin
la source
la source
Réponses:
Cette réponse est un peu vague.
Sélectionnez une fonction uniformément au hasard dans l'ensemble de toutes les fonctions, des mots w-bit aux mots w-bit. Pour chaque ensemble, conservez une empreinte digitale w-bit comme suit:h
Soit deux ensembles d'entiers w bits. Si leurs empreintes digitales sont les mêmes, alors l'empreinte digitale de S △ T , la différence symétrique de S et T , est 0, ce qui se produit avec la probabilité 2 - w .S≠ T S△ T S T 2- w
la source