Calculadora de Filtro de Bloom (Tamaño, Funciones Hash, Tasa de Falsos Positivos)
Cuántos bits, cuánta memoria y cuántas funciones hash necesita un filtro de Bloom para guardar un número de elementos con una tasa de falsos positivos aceptable.
Resultados
La línea discontinua marca el valor que ha escrito.
Qué hace esta herramienta
Un filtro de Bloom responde a «¿está este elemento en el conjunto?» con «seguro que no» o «probablemente sí», usando un pequeño vector de bits y varias funciones hash. Para n elementos y una tasa de falsos positivos p, el tamaño óptimo es m = −n ln p ÷ (ln 2)² bits, y el mejor número de funciones es k = (m ÷ n) ln 2, lo que da unos 1,44 × log₂(1 ÷ p) bits por elemento. Una tasa del 1 % cuesta unos 9,6 bits por elemento y una del 0,1 % unos 14,4, sean cuales sean los elementos. La tasa de falsos positivos sube deprisa si inserta más elementos de los previstos, y un filtro de Bloom estándar no permite borrar.
Fórmula
m = −n ln p ÷ (ln 2)² · k = (m ÷ n) ln 2 · p = (1 − e^(−k n ÷ m))^k
Variables
| Símbolo | Significado | Unidad |
|---|---|---|
nn | Número de elementos a guardar | — |
pp | Tasa de falsos positivos que acepta | — |
M | Tamaño del vector de bits | bit |
MB | Memoria | MiB |
K | Número de funciones hash | — |
BP | Bits por elemento | — |
PR | Tasa de falsos positivos con ese número entero de funciones | — |
Ejemplo resuelto
- Número de elementos a guardar1.000.000
- Tasa de falsos positivos que acepta0,01
- Tamaño del vector de bits9.585.059 bit
- Memoria1,14 MiB
- Número de funciones hash7
- Bits por elemento9,59
- Tasa de falsos positivos con ese número entero de funciones0,01004
Limitaciones
- El resultado es una estimación basada solo en los valores introducidos. Las situaciones reales suelen incluir factores que esta calculadora desconoce.
- La fórmula supone condiciones ideales: sin pérdidas por fricción, sin resistencia del aire y sin pérdidas de rendimiento salvo que las introduzca.