Hãy xem xét chúng tôi có một thuật toán nhận được luồng khóa dài về mặt giả thuyết. Sau đó nó tạo ra một giá trị từ 0 đến 1 cho mỗi khóa, khi chúng ta xử lý nó, để thu hồi sau. Bộ đầu vào đủ lớn để chúng tôi không thể chứa một giá trị cho mỗi khóa. Quy tắc tạo giá trị độc lập trên các khóa.Cấu trúc dữ liệu xác suất không gian hiệu quả để khôi phục số
Bây giờ, giả sử rằng chúng ta có thể tha thứ cho lỗi trong việc tra cứu sau, nhưng chúng tôi muốn vẫn giảm thiểu sự khác biệt trong lấy và gốc giá trị (ví dụ: tiệm qua nhiều khả năng tìm lại ngẫu nhiên).
Ví dụ: nếu giá trị ban đầu của một khóa nhất định là 0,008, thì truy xuất 0,06 tốt hơn nhiều so với truy xuất 0,6.
Chúng tôi có thể sử dụng cấu trúc dữ liệu hoặc thuật toán nào để giải quyết vấn đề này?
Bộ lọc Bloom là cấu trúc dữ liệu gần nhất mà tôi có thể nghĩ đến. Người ta có thể định lượng phạm vi đầu ra, sử dụng bộ lọc nở hoa cho mỗi nhóm, và bằng cách nào đó kết hợp đầu ra của chúng tại thời điểm truy xuất để ước tính giá trị có khả năng nhất. Trước khi tôi tiến hành với con đường này và phát minh lại bánh xe, có bất kỳ cấu trúc dữ liệu, thuật toán, phương pháp lý thuyết hoặc thực tế đã biết nào để giải quyết vấn đề này không?
Tôi lý tưởng tìm kiếm giải pháp có thể tham số sự cân bằng giữa không gian và tỷ lệ lỗi.
Chúng ta có thể làm phân vùng phạm vi và viết hàm băm để ánh xạ mọi số tới phạm vi cụ thể. Các giá trị trong phạm vi có thể được điều khiển dựa trên hệ số lỗi. –