用於網頁黑名單系統,垃圾郵件過濾系統,爬蟲的網址判重系統。
通常的意思是在大量數據集合中,判斷一個新數據是否存在於這個集合中。
數據量少還能夠使用hashmap和位圖bitmap。數據一大佔用內存不理想。
布隆的作飯法是,開闢一個長度爲m的位圖數組,對於每個集合的元素使用多個hash函數計算得值%m,落在數組上的位置
都置1,這樣計算完一個集合樣本以後,位圖數組就被置了不少1,當一個新數據來了,將那多個hash函數計算一下,若是獲得的%m以後發如今位圖數組上都是1了,那麼能夠肯定這個數據在集合裏,若有一個或多個爲0,那就不是。刪一個樣本不容易。
樣本數量爲n,失誤率爲p,
m = -(n*lnp)/(ln2)^2
哈希函數的個數k = ln2 * m/n;數組