web-dev-qa-db-ja.com

32ビットハッシュを使用する場合の衝突の確率

データベースに10文字の文字列キーフィールドがあります。 CRC32を使用してこのフィールドをハッシュしましたが、重複が心配です。この状況で衝突の可能性を誰かに見せてもらえますか?

追伸私の文字列フィールドはデータベース内で一意です。文字列フィールドの数が100万の場合、衝突の可能性はどのくらいですか?

34
nguyenngoc101
80
Adam Morris

引用する場合、少なくとも1つの衝突が本質的に保証されます。少なくとも1つの衝突の確率は約1-3x10です-51。予想される衝突の平均数は約116です。

一般に、kサンプルでの衝突の平均数、それぞれn可能な値は次のとおりです。

N(n,k)~=k(k-1)/(2n)

少なくとも1つの衝突の確率は次のとおりです。

p(n,k)~=1-e^(-k(k-1)/(2n))

あなたの場合、n= 232 およびk= 106

あなたの場合、three-way衝突の確率は約0.01です。 誕生日の問題 を参照してください。

33
Mark Adler