Filtro Bloom fácil de entender

El papel del filtro Bloom es averiguar si es probable que un elemento esté en la colección.

Por ejemplo, tenemos una matriz con una longitud de 10000 y queremos saber si la cadena "Hola" está en esta matriz, entonces debemos juzgar por comparación de bucles, lo que será una pérdida de tiempo.

Este problema se puede resolver con el filtro Bloom.

La característica del filtro Bloom es: es posible un juicio erróneo pero nunca perderá un juicio. En otras palabras, el resultado devuelto por la consulta "puede estar en el conjunto" o "absolutamente no en el conjunto".

El principio es simple, primero creamos una matriz de longitud 10

const arr = [0,0,0,0,0,0,0,0,0,0]

Entonces suponemos:

un => 1

segundo => 2

c => 3

re => 4

mi => 5

...

z => 24

Luego suponga que solo hay a, z y ac en el conjunto

Cambiamos a a 1, y luego usamos 1 para obtener la longitud de la matriz restante, es decir, 1 % 10 = 1, y luego cambiamos el valor de la matriz subíndice como 1 a 1.

Cambie z a 24 y luego use 24 para obtener la longitud de la matriz restante, es decir, 24 % 10 = 1, y luego cambie el valor del subíndice 4 de la matriz a 1.

Cambie ac a 13, y luego use 13 para obtener la longitud de la matriz restante, es decir, 13 % 10 = 3, y luego cambie el valor del subíndice 3 de la matriz a 1.

const arr = [0,1,0,1,1,0,0,0,0,0,0]

A continuación asumimos que necesitamos juzgar si e está en este conjunto 

solo cambia e a 5

Luego use 5 para obtener la longitud de la matriz restante, es decir, 5 % 10 = 5, y luego verifique si el elemento cuyo subíndice es 5 es 1.

Se puede ver que arr[5] = 0, por lo que podemos juzgar que e definitivamente no está en este conjunto.

=====================

El filtro Bloom se utiliza para realizar esta función de juicio para una recopilación de más datos. Entonces, si tiene menos datos, no necesita usarlos

Si hay demasiados datos, entonces necesitamos una colección más grande; de ​​lo contrario, el acoplamiento será más grande, así que utilícelo de manera oportuna.

Supongo que te gusta

Origin blog.csdn.net/weixin_42335036/article/details/124837852
Recomendado
Clasificación