Existe uma estrutura de dados RAM de palavras de w bits com tempo O (1) por operação para o seguinte problema ?: Manter um conjunto de números inteiros não negativos de w bits que ofereça suporte às operações
- add (x): adiciona x ao conjunto
- remove (x): remove x do conjunto
- impressão digital (): retorna uma impressão digital do conjunto. Essa impressão digital de w bits tem a propriedade de que dois conjuntos idênticos têm a mesma impressão digital, enquanto dois conjuntos diferentes provavelmente têm impressões digitais diferentes
Todas as operações devem ser executadas em tempo constante.
ds.data-structures
Pat Morin
fonte
fonte
Respostas:
Esta resposta é um pouco ondulatória.
Selecione uma função uniformemente aleatoriamente no conjunto de todas as funções, de palavras em w bits a palavras em w bits. Para cada conjunto, mantenha uma impressão digital de w bits da seguinte maneira:h
Seja dois conjuntos de números inteiros de w bits. Se suas impressões digitais são as mesmas, então a impressão digital de , a diferença simétrica de e , é 0, o que acontece com a probabilidade .S △ T S T 2 - wS≠ T S△T S T 2−w
fonte