Существует ли структура данных w-bit word-RAM с временем O (1) на операцию для следующей задачи ?: Поддерживать набор w-битовых неотрицательных целых чисел, который поддерживает операции
- добавить (х): добавить х к набору
- удалить (х): удалить х из набора
- fingerprint (): вернуть отпечаток набора. Этот w-битный отпечаток обладает тем свойством, что два идентичных набора имеют одинаковый отпечаток, в то время как два разных набора, вероятно, имеют разные отпечатки
Все операции должны выполняться в постоянное время.
Схема дактилоскопии Рабина-Карпа, где где p - случайное w-битное простое число, почти работает. Проблема со временем обновления, так как вычисление 2 ^ x \ bmod p занимает больше, чем постоянное время. Используя повторное возведение в квадрат, это можно сделать за O (log w). Самый быстрый модульный алгоритм возведения в степень, который я смог найти, выполняет что-то вроде (log w) / (loglog w) арифметических операций.