Xem xét danh sách liên kết đơn lẻ trong một thiết lập chức năng hoàn toàn. Những lời ca ngợi của nó đã được hát từ đỉnh núi và sẽ tiếp tục được hát. Ở đây tôi sẽ giải quyết một trong số nhiều điểm mạnh của nó và câu hỏi làm thế nào nó có thể được mở rộng đến lớp rộng hơn của các chuỗi chức năng thuần túy dựa trên cây.
Vấn đề là như sau: Bạn muốn kiểm tra sự bằng nhau về cấu trúc gần như nhất định trong thời gian O (1) bằng cách băm mạnh. Nếu hàm băm được đệ quy theo cấu trúc, tức là hàm băm (x: xs) = mix x (hàm băm), thì bạn có thể lưu các giá trị băm trong suốt vào danh sách và cập nhật chúng trong thời gian O (1) khi một phần tử được đưa vào danh sách hiện có . Hầu hết các thuật toán cho danh sách băm là đệ quy có cấu trúc, vì vậy phương pháp này có thể sử dụng được trong thực tế.
Nhưng giả sử thay vì các danh sách liên kết đơn lẻ, bạn có các chuỗi dựa trên cây hỗ trợ nối hai chuỗi có độ dài O (n) trong thời gian O (log n). Để bộ đệm băm hoạt động ở đây, hàm trộn băm phải được kết hợp để tôn trọng mức độ tự do của một cây trong việc biểu diễn cùng một chuỗi tuyến tính. Bộ trộn nên lấy các giá trị băm của cây con và tính giá trị băm của toàn bộ cây.
Đây là nơi tôi đã ở cách đây sáu tháng khi tôi dành một ngày để nghiên cứu và nghiên cứu vấn đề này. Nó dường như đã không nhận được sự chú ý trong các tài liệu về cấu trúc dữ liệu. Tôi đã bắt gặp thuật toán băm Tillich-Zemor từ mật mã. Nó dựa vào phép nhân ma trận 2x2 (có liên quan) trong đó các bit 0 và 1 tương ứng với hai bộ tạo của một khối con với các mục trong trường Galois.
Câu hỏi của tôi là, tôi đã bỏ lỡ những gì? Phải có những tài liệu liên quan trong cả tài liệu về mật mã và cấu trúc dữ liệu mà tôi không thể tìm thấy trong tìm kiếm của mình. Bất kỳ ý kiến về vấn đề này và địa điểm có thể để khám phá sẽ được đánh giá rất cao.
Chỉnh sửa: Tôi quan tâm đến câu hỏi này trên cả hai đầu mềm và mật mã mạnh của quang phổ. Về mặt mềm hơn, nó có thể được sử dụng cho các bảng băm nơi tránh va chạm nhưng không phải là thảm họa. Về mặt mạnh mẽ hơn, nó có thể được sử dụng để kiểm tra bình đẳng.