Wikipedia mówi:Ile funkcji mieszania wymaga mój filtr kwitnienia?
Pusta filtr Bloom jest tablicą nieco bitów m, ustawiony na 0. Nie może być również k różne funkcje hash zdefiniowane, z których każdy mapy lub skróty pewien zbiór elementów do jednego z pozycje m tablicy z jednolitym rozkładem losowym.
Przeczytałem artykuł, ale nie rozumiem, w jaki sposób k jest określony. Czy jest to funkcja rozmiaru stołu?
Ponadto w tablicach hashowych napisałem, że użyłem prostego, ale efektywnego algorytmu automatycznego zwiększania rozmiaru hasza. Zasadniczo, jeśli zostało wypełnione więcej niż 50% kubełków w tabeli, podwoiłbym rozmiar stołu. Podejrzewam, że nadal możesz chcieć to zrobić z filtrem bloom, aby zmniejszyć liczbę fałszywych alarmów. Poprawny?
idealny. dziękuję –
Zauważ, że ze względu na zaokrąglenia/ścięcie różnic i/lub precyzję funkcji logarytmicznej, możesz nie uzyskać dokładnie tych samych liczb dla przykładu, jeśli uruchomisz te równania przez wybrany przez ciebie język. Dla mnie "m = 2075674" i "k = 6,64". Tak czy inaczej, zaokrąglij obie wartości do najbliższej liczby całkowitej, a twoja liczba fałszywych trafień będzie wystarczająco bliska. Byłoby interesujące, gdyby równanie ponownie obliczyło * rzeczywistą * wartość 'p', używając obliczonych/zaokrąglonych wartości' m' i 'k'. Ponownie, nie powinno być potrzeby martwić się o dokładne wartości; Ballpark jest wystarczająco dobry. –
Znalazłem równanie, aby obliczyć rzeczywistą wartość 'p' podaną przez obliczone' m' i 'k' - interesujące do porównania, aby sprawdzić, jak zaokrąglenie mogło mieć wpływ na akceptowalną liczbę fałszywych trafień. 'e' jest stałą matematyczną, a nie wartością dynamiczną. 'p = e^(- (m/n) * (ln (2)^2))' - dzięki http://stackoverflow.com/a/24071581/2609094 –