0

鉴于有数十亿个 cookie,像字符串一样的 UUID,在这个样本上测试 murmur3 等 32 位哈希函数的冲突率的最佳方法是什么?

首先,很难生成数十亿个唯一字符串,因为不可能将其保存在内存中,并且没有 100% 精确的随机字符串生成器。

我能想到的唯一方法是:

  1. 生成它们并使用大约。像bloomfilter或cuckoo过滤器这样的数据结构来丢弃可能的重复项。然后我们会说存储在一个文件中的唯一 UUID 正好是 5B。
  2. 遍历它们,散列它们并使用散列码重复步骤 1),同时计算有多少冲突。

有没有更好的方法来做到这一点?这样做还有一个缺点,就是在测试2)中的哈希码时,会有一定的误报率。哈希码也必须写入文件,在可能的误报命中的情况下手动检查。

4

2 回答 2

0

在这些量级中,murmur_32 的碰撞率非常高......

只有 100M 独特的 uuid 具有1.145577 %精确的碰撞率......

斯卡拉片段

于 2017-01-04T02:52:47.970 回答
-2

从英语词典中随机选择一个单词,提交给 Google,然后使用作为“随机”数据返回的 url 来测试你的哈希函数。

于 2017-01-03T17:39:29.220 回答