Ein Bloom-Filter ist eine probabilistische Datenstruktur, die schnell und speichereffizient prüft, ob ein Element definitiv nicht oder möglicherweise in einer Menge ist.
Die Grundstruktur besteht aus einem Bitvektor, in den k unabhängige Hashfunktionen Bits auf 1 setzen.
Beim Einfügen werden die Hashwerte eines Elements ermittelt und die entsprechenden Bitpositionen im Vektor auf 1 gesetzt.
Bei der Mitgliedschaftsprüfung werden die gleichen Hashfunktionen angewendet und kontrolliert, ob alle zugehörigen Bits auf 1 stehen.
Bloom-Filter können falsche Positive liefern, aber niemals falsche Negative.
Die Fehlerrate hängt von der Filtergröße m, der Anzahl der Hashfunktionen k und der erwarteten Elementanzahl n ab.
Der optimale Wert für k berechnet sich zu (m/n)·ln(2) und minimiert die Fehlerrate.
Einfüge- und Abfrageoperationen haben Laufzeit O(k), der Speicherbedarf hängt von der gewünschten Fehlerrate ab.
Get notified when new stories are published for "🇩🇪 Hacker News Deutsch"