Julia之BloomFilters的使用

2021-06-27 23:37:04 字數 749 閱讀 8064

我們都知道布隆過濾是用來判斷乙個元素是否在乙個集合中的很有效的方法。比如在wps字處理軟體中,需要檢查乙個單詞是否拼寫正確;在fbi

中需要判斷乙個嫌疑犯的名字是否在嫌疑名單上;在網路爬蟲裡,判斷乙個**是否被訪問過。最簡單的解決辦法就是

採用hashtable的方法來儲存,它的好處是快速且精確,缺點是耗費大量記憶體空間。所以針對耗費空間大的問題,提出了布隆過濾。但是布隆過濾是有誤識別率的,也就是說在集合中的元素一定能識別出來,但是不在集合中的元素可能被識別為在集合中,好在這種誤識別率的概率比較小,通常可以接受。

進行布隆過濾的第一步就是構造乙個布隆過濾器。所以現在mayuyu就帶大家來使用julia的三方包bloomfilters

在julia中,有很多比較優秀的包,具體可以參考:而我們需要的布隆過濾包在這裡:

當然,第一步就是安裝bloomfilters包了,在julia互動模式下,執行如下命令

好了,執行完命令後,mayuyu的bloomfilters就安裝好了,現在開始學習它的使用方法。如下圖

在julia的布隆過濾包中,還有mmap功能,即把檔案當記憶體使用,可以將建立好的布隆過濾資料等寫入檔案中,以便下次直接用。

/blob/master/readme.md

julia常用矩陣函式 Julia中的函式

如何宣告函式 julia為我們提供了一些編寫函式的方法。第乙個需要function和end關鍵字 function sayhi name println hi name,it s great to see you endfunction f x x 2end 我們可以像這樣呼叫已宣告的函式 sayh...

初試 Julia 語言

之所以這樣說,有三個方面的理由 作為乙個動態語言,它的 jit 編譯器 在很多情況下 還沒有智慧型到,讓我可以同時享受動態語言的便利和它的速度優勢。例如最近我在試用 julia 時最先嘗試的就是把原來用 numba 寫的函式重寫一遍,然而發現結果非常不好。julia 版本的函式執行速度相當於純 py...

Julia 矩陣計算

使用巨集 isdefined isdefined x x new value 自定義巨集 可以在賦值的時候,如果某個屬性變數沒有被賦值,則將值設定給某個變數 macro ifund exp local e exp isdefined main,e.args 1 e.args 1 esc exp en...