"CuckooFilter" (データ構造)
"CuckooFilter"
要素が確実にメンバではないかどうかを検定する集合を表す.
詳細
- Cuckooフィルタは通常,要素が確実にメンバでないかどうかを検証することができる確率集合として使われる.
- 要素はCuckooフィルタから除去することができる.
- 同じ要素を複数回Cuckooフィルタに挿入することができる.
- ある要素がCuckooフィルタのメンバであるかどうかを検証すると,要素が集合のメンバではない場合に必ずFalseを返す.
- ある要素がCuckooフィルタのメンバであるかどうかを検証すると,要素が集合のメンバである場合に必ずTrueを返すとは限らない.
- 要素を入れるスペースがない場合には,Cuckooフィルタへの挿入に失敗することがある.
-
CreateDataStructure[ "CuckooFilter",capacity] 指定の capacity を持つ新しい"CuckooFilter"を作成する Typed[x,"CuckooFilter"] x に"CuckooFilter"の型を与える - "CuckooFilter"型のデータ構造には,以下の演算が使える.
-
ds["Array"] ds 内の基本となるデータ time: O(1) ds["Capacity"] ds の記憶容量 time: O(1) ds["Copy"] ds のコピーを返す time: O(n) ds["CouldContain",x] ds に x が含まれる可能性がある場合にはTrue,それ以外の場合にはFalseを返す time: O(1) ds["Delete",x] x を ds から削除し,x が要素だったかもしれない場合にはTrueを返す time: O(1) ds["FalsePositiveProbability"] メンバシップ検定で誤検出される確率 time: O(1) ds["Insert",x] x を ds に挿入する time: O(1) ds["Length"] ds に保存される要素の数 time: O(1) ds["LoadFactor"] ds のロード係数 time: O(1) ds["Visualization"] ds の可視化を返す time: O(n) - 以下の関数もサポートする.
-
dsi===dsj dsi が dsj に等しい場合はTrue FullForm[ds] ds の完全形 Information[ds] ds についての情報 InputForm[ds] ds の入力形 Normal[ds] ds を通常の式に変換する
例題
すべて開くすべて閉じる例 (1)
新しい"CuckooFilter"は,CreateDataStructureを使って作成できる:
任意の式を"CuckooFilter"のデータ構造に挿入することができる:
式が存在するかどうかを検証することは可能である.結果がFalseである場合には,f[2]が確実にその集合内にないことを意味する:
スコープ (1)
情報 (1)
新しい"CuckooFilter"は,CreateDataStructureを使って作成することができる: