我想知道在GetHashCode()实例上调用string方法时获得重复值的可能性。例如,在x86机器上,according to this blog post, blairbrainlessness具有相同的哈希码(1758039503)。

最佳答案

大。

(抱歉,乔恩!)

短字符串之间发生哈希冲突的可能性非常大。给定一组从常用单词中抽取的一万个不同的短字符串,则该组中至少发生一次碰撞的可能性约为1%。如果您有八万个字符串,则至少发生一次碰撞的可能性超过50%。

有关显示集合大小和碰撞概率之间关系的图表,请参阅我关于该主题的文章:

https://docs.microsoft.com/en-us/archive/blogs/ericlippert/socks-birthdays-and-hash-collisions

关于c# - 在字符串上调用GetHashCode()时获得重复值的可能性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7968753/

10-11 03:53