ブルームフィルタパラメータ計算機
期待される項目数と目標偽陽性率からブルームフィルタの最適ビット配列サイズとハッシュ関数数を計算します。正確なメモリ内訳(ビット、バイト、KB/MB/GB)と偽陽性率対メモリのトレードオフグラフを取得できます。
入力
フィルタに挿入する予定の項目数。
挿入されていない項目が誤って存在すると報告される確率。低いほど精度は高いですが、メモリが必要になります。
出力
最適なブルームフィルタパラメータ
| Metric | Value |
|---|---|
| No data yet | |
nと目標偽陽性率を入力して、メモリのトレードオフを確認します。
ガイド
ブルームフィルタの最適ビット配列サイズとハッシュ関数数を取得します。このツールは、実際に重要な2つの数値から計算します。挿入することを期待する項目数と、受け入れても良い偽陽性ノイズの量です。
使い方
- フィルタに挿入する予定の**期待される項目数(n)**を入力します。
- 目標偽陽性率スライダを、必要な精度に調整します。低いほど偽陽性が少なくなりますが、ビット配列が大きくなります。
- ビット配列サイズ(m)、ハッシュ関数数(k)、必要なメモリを確認します。また、同じnで偽陽性率を厳しくする際にメモリがどのようにスケーリングするかを示すグラフも表示されます。
公式
- ビット配列サイズ:
m = ceil(-n · ln(p) / (ln 2)²) - ハッシュ関数数:
k = round((m / n) · ln 2)(最小値は1)
これらは、すべての主要なブルームフィルタ実装(Guava、RedisのBF.RESERVE、pybloom)で使用される標準的な最適パラメータ導出です。mとkは整数に丸められるため、計算機は、丸められた値でのその時点での実際の偽陽性率も報告します。標準的な推定値(1 - e^(-kn/m))^kを使用します。これは入力した目標値と同じになることはめったにありません。
グラフの読み方
グラフは、入力したnで、偽陽性率の対数スケールで、必要なメモリを目標偽陽性率に対してプロットします。mは-ln(p)に線形で、x軸は-log₁₀(p)であるため、トレードオフは曲線ではなく直線です。偽陽性率を1桁厳しくすると、メモリは比例して予測可能に増加します。現在の設定は赤いドットでマークされています。
制限事項
これは標準的な(カウント不可、スケーラブルでない)ブルームフィルタをサイズ設定し、理想的なハッシュファミリを想定しています。相関ビットを持つ実際のハッシュ関数は、理論上の偽陽性率からわずかにずれます。特定の言語/ライブラリの1ビットあたりのオーバーヘッド(一部の実装はmを2のべき乗またはマシンワードの倍数に丸めて、より高速なインデックス処理を実現)を考慮していないため、ここではm/メモリを理論上の最小値として扱い、ライブラリが実際に割り当てる正確な値として扱わないでください。
プライバシー
すべてはブラウザで実行されます。入力したデータは何も送信されません。
関連ツール
ブルームフィルタのストレージキー(またはその他)のハッシュが必要な場合は、Hash Generatorを参照してください。フィルタをサイズ設定した後、Cache TTL Calculatorは、キャッシュの前でフィルタを使用している場合、そのエントリの有効期間を決定するのに役立ちます。
コードから使う
REST API
curl -X POST https://api.iotools.cloud/v1/tool/bloom-filter-parameter-calculator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"n": "10000",
"targetFpRate": "1"
}'ご自身のアカウントのキーに差し替えてください。ツールのフィールドがそのままリクエストボディになります——ラッパーはありません。
AIエージェントに依頼する
Use the IOTools `bloom-filter-parameter-calculator` tool (Bloom Filter Parameter Calculator) on this input:
YOUR_INPUT_HEREIOTools MCPサーバーに接続された任意のエージェントにこれを貼り付け、入力内容を追加してください。
| 1回あたりの費用 | 5クレジットから |
|---|