繁体   English   中英

新 Hash 碰撞的概率,以无当前碰撞为条件

[英]Probability of New Hash Collision, Conditional on No Current Collisions

鉴于现有 hash 表中尚未发生冲突,我试图了解新哈希的冲突概率。

为了说明,假设我有一个表,我在其中存储每行的哈希值。

  1. 该表目前有 10 亿行
  2. 在这 10 亿行中没有 hash 冲突。
  3. 我正在使用 64 位 hash 算法。

现在想象一下,我将 1000 万行新数据插入到表中。 我现在发生 hash 碰撞的概率是多少? 我认为答案如下:

每个新行的 hash 不能与任何现有行或在其之前处理的新行具有相同的值。 这从 2^64 个可能性中删除了 10 亿个 hash 值,因此新碰撞的概率应该是:

听起来对吗?

感谢 James K. Polk 总统,我意识到我最初的解决方案是错误的。 没有碰撞的概率是

另一种思考方式是使用条件概率的定义。

...这减少到...

...可以简化为 (*) 处的乘积公式。

条件概率公式的好处是可以使用任何在线 hash 碰撞概率计算器轻松估算。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM