Một bộ lọc Bloom có một Hash
tsudev· 22/10/2026
Giới thiệu về bộ lọc Bloom
Bộ lọc Bloom là một cấu trúc dữ liệu xác suất được sử dụng rộng rãi trong nhiều lĩnh vực, bao gồm cả công nghệ thông tin và khoa học máy tính. Nó được thiết kế để xác định xem một phần tử có thuộc một tập hợp hay không, với một tỷ lệ sai sót nhất định. Bộ lọc Bloom sử dụng một hoặc nhiều hàm hash để ánh xạ phần tử vào một mảng bit, từ đó giúp giảm thiểu không gian lưu trữ và tăng tốc độ truy vấn.Cấu trúc của bộ lọc Bloom
Một bộ lọc Bloom cơ bản bao gồm một mảng bit và một hoặc nhiều hàm hash. Mảng bit được sử dụng để lưu trữ kết quả của các hàm hash, trong khi các hàm hash được sử dụng để ánh xạ phần tử vào mảng bit. Khi một phần tử được thêm vào bộ lọc Bloom, nó sẽ được hash bằng một hoặc nhiều hàm hash và kết quả sẽ được lưu trữ trong mảng bit.Ví dụ về triển khai bộ lọc Bloom
Giả sử chúng ta muốn triển khai một bộ lọc Bloom để lưu trữ một tập hợp các từ khóa. Chúng ta có thể sử dụng một hàm hash đơn giản như sau:python
import mmh3
def hash_function(word):
return mmh3.hash(word, 0) % 1000
Trong ví dụ trên, chúng ta sử dụng thư viện mmh3 để tạo một hàm hash đơn giản. Hàm hash này sẽ ánh xạ mỗi từ khóa vào một giá trị số nguyên trong phạm vi từ 0 đến 999.