Відбитки пальців для динамічних наборів


10

Чи існує структура даних W-біт word-RAM з часом O (1) на операцію для наступної проблеми?: Підтримуйте набір w-бітових негативних чисел, що підтримують операції

  • add (x): додати x до набору
  • delete (x): видалити x із набору
  • fingerprint (): повернення відбитка набору. Цей w-бітний відбиток має властивість, що два ідентичні набори мають однаковий відбиток пальців, тоді як два різні набори, ймовірно, мають різні відбитки пальців

Усі операції повинні виконуватись у постійному часі.

f(S)=(хS2х)модp
2хмодp

3
Я бачу, що подібне питання вже було розміщено тут , але не було надано рішення постійного часу.
Пат Морін

Відповіді:


1

Ця відповідь трохи рукою.

Вибір функції рівномірно випадково з набору всіх функцій від w-розрядних слів до w-розрядних слів. Для кожного набору підтримуйте w-бітний відбиток так:год

  1. Порожній набір має відбиток 0.
  2. додати (x) та видалити (x) оновити відбиток до , де - xor.ffгод(х)

Нехай це два набори w-бітових цілих чисел. Якщо їхні відбитки однакові, то відбиток пальця , симетрична різниця і , дорівнює 0, що відбувається з ймовірністю .SТSТSТ2-ш


І на практиці ви можете створити з псевдовипадковою функцією (PRF) з криптографії - наприклад, щось на основі AES. Це повинно бути дуже ефективним, і ви отримуєте чіткі обіцянки, що це спрацює (якщо криптовалюта не буде зламана). год
DW
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.