Найти в Дзене
Николай Лазарев

Фильтр блюма (изучаю структуры данных)

Осваиваю фильтр блюма (ФБ). Фишка в том, что ФБ нужно сделать на основе битового массива. Для примера использовано 32-разрядное целое число. Новое для меня было знакомство с битовыми массивами и с основными битовыми операциями. По условию нужно было обойтись без дополнительных библиотек. Реализованы следующие методы: '''создаём битовый массив длиной f_len ''' '''hash1''' '''hash2''' '''добавляем строку str1 в фильтр''' '''проверка, имеется ли строка str1 в фильтре''' Ссылка на код

Осваиваю фильтр блюма (ФБ).

Фишка в том, что ФБ нужно сделать на основе битового массива. Для примера использовано 32-разрядное целое число. Новое для меня было знакомство с битовыми массивами и с основными битовыми операциями. По условию нужно было обойтись без дополнительных библиотек.

Реализованы следующие методы:

  • def __init__(self, f_len):

'''создаём битовый массив длиной f_len '''

  • def hash1(self, str1):

'''hash1'''

  • def hash2(self, str1):

'''hash2'''

  • def add(self, str1):

'''добавляем строку str1 в фильтр'''

  • def is_value(self, str1):

'''проверка, имеется ли строка str1 в фильтре'''

Ссылка на код