データベースに10文字の文字列キーフィールドがあります。このフィールドをハッシュするためにCRC32を使用しましたが、重複が心配です。この状況での衝突の可能性を誰かに教えてもらえますか?
ps私の文字列フィールドはデータベース内で一意です。文字列フィールドの数が100万の場合、衝突の確率はどのくらいですか?
データベースに10文字の文字列キーフィールドがあります。このフィールドをハッシュするためにCRC32を使用しましたが、重複が心配です。この状況での衝突の可能性を誰かに教えてもらえますか?
ps私の文字列フィールドはデータベース内で一意です。文字列フィールドの数が100万の場合、衝突の確率はどのくらいですか?
回答はこの記事を参照しました: http://arstechnica.com/civis/viewtopic.php?f=20&t=149670
以下の画像を見つけました: http://preshing.com/20110504/hash-collision-probabilities
あなたが引用した場合、少なくとも1つの衝突が本質的に保証されます。少なくとも 1 回衝突する確率は、約 1 ~ 3x10 -51です。予想される衝突の平均数は約 116 です。
一般に、 k 個のサンプルでの衝突の平均数は、それぞれがn 個の可能な値からランダムに選択されます。
少なくとも 1 回の衝突の確率は次のとおりです。
あなたの場合、n = 2 32およびk = 10 6です。
あなたの場合の3方向衝突の確率は約 0.01 です。誕生日問題を参照してください。