因为实际上 GetHashCode 得到的只是一个 Int32 的结果,而 Int32 只有 32 个 bit。
32 个 bit 的哈希,有多大概率是相同的呢?本文将计算其概率值。...计算方法
计算哈希碰撞概率的问题可以简化为这样:
有 1, 2, 3, … n 这些数字;
现在,随机从这些数字中取出 k 个;
计算这 k 个数字里面出现重复数字的概率。...例如:
有 1, 2, 3, 4 这四个不同的数字;
现在从中随机抽取 2 个。...有 1, 2, 3, 4 这四个不同的数字;
现在从中随机抽取 3 个。...现在问题是:
有 1, 2, 3, … 2^{32} 这些数字,我们把 2^{32} 记为 n;
现在从中随机抽取 k 个。