blog

ブルーム・フィルターに関する質問

ブルームフィルタは、大量のデータ中のビットマップの有無を検索する問題を解決するために設計されたデータ構造です。 理想的には、nビットのビットマップは$2^n$個の要素を保持することができ、既に存在する...

Oct 25, 2020 · 4 min. read

ブルームフィルタは、大量のデータ中の有無を検索する問題を解決するために設計されたデータ構造です。

理想的には、nビットのビットマップはn2n個の要素を保持することができます。

ビットマップの長さがmmで、既存のハッシュ関数がkk個あり、入力ドメインの任意の要素に対して、ハッシュによって得られる値は[0,m][0,m]に一様に分布していると仮定します。

m現在のフィルタにnn個の要素が挿入されたとき、 k*nk*n回の 挿入操作が行われたことになり、どのビットでも0になる確率は kk*nP0=k*n、1になる確率は [0,m]k*nP1=1-k*nとなります。

nこの時点で要素が挿入され、ハッシュはk個の位置を取得し、このk個の位置のすべてが既に1であれば、確率 knkP=k*n)kで偽陽性

Matlabによるグラフ,P0=(11m)knm=k=3,m=0010, nによるP傾向

m=1000の条件下でn=1000の場合、エラー率はすでに80%以上と高く、この場合、最も単純なビットマップに従っても100%正しいことがわかります。ブルームフィルタの利点は何ですか?

Read next

ツール - ドキュメント

日常的な開発で使用するツールキットの中には、ドキュメントの種類によってはその処理が必要になるものがあります。

Oct 21, 2020 · 2 min read

テスト済み

Oct 15, 2020 · 2 min read

ダークモードを探る

Oct 12, 2020 · 3 min read