J'ai un champ clé de chaîne de 10 caractères dans une base de données. J'ai utilisé CRC32 pour hacher ce champ mais je m'inquiète des doublons. Quelqu'un pourrait-il me montrer la probabilité de collision dans cette situation?
p.s. mon champ de chaîne est unique dans la base de données. Si le nombre de champs de chaîne est de 1 million, quelle est la probabilité de collision?
Duplicate of Collisions attendues pour un parfait crc 32 bits
La réponse fait référence à cet article: http://arstechnica.com/civis/viewtopic.php?f=20&t=14967
Trouvé l'image ci-dessous à partir de: http://preshing.com/20110504/hash-collision-probabilities
Dans le cas que vous citez, au moins une collision est essentiellement garantie. La probabilité d'au moins une collision est d'environ 1 à 3 x 10-51. Le nombre moyen de collisions auquel vous vous attendez est d'environ 116.
En général, le nombre moyen de collisions dans k échantillons, chacun un choix aléatoire parmi n les valeurs possibles sont:
La probabilité d'au moins une collision est:
Dans votre cas, n = 232 et k = 106.
La probabilité d'une collision à trois voies dans votre cas est d'environ 0,01. Voir Problème d'anniversaire .