Tôi tò mò liệu có cách nào để lưu trữ hàm băm của nhiều bộ số nguyên có các thuộc tính sau không, lý tưởng nhất là:
- Nó sử dụng không gian O (1)
- Nó có thể được cập nhật để phản ánh việc chèn hoặc xóa trong thời gian O (1)
- Hai bộ sưu tập giống hệt nhau (nghĩa là các bộ sưu tập có cùng các phần tử có cùng bội số) phải luôn luôn băm với cùng một giá trị và hai bộ sưu tập riêng biệt nên băm thành các giá trị khác nhau với xác suất cao (nghĩa là hàm độc lập hoặc độc lập theo cặp)
Một nỗ lực ban đầu ở đây sẽ là lưu trữ modulo sản phẩm một số nguyên tố ngẫu nhiên trong số băm của các phần tử riêng lẻ. Điều này thỏa mãn 1 và 2 nhưng không rõ liệu nó hay biến thể gần đúng sẽ thỏa mãn 3.
Ban đầu tôi đã đăng bài này lên StackOverflow .
* Thuộc tính 1 và 2 có thể được nới lỏng một chút, giả sử O (log n) hoặc đa thức tuyến tính nhỏ. Vấn đề là để xem liệu chúng ta có thể xác định nhiều bộ và kiểm tra sự bình đẳng một cách đáng tin cậy mà không cần lưu trữ các phần tử không.