3

我受到这个独特的 id 代码的启发,生成了一个随机的 64 位标识符。

我的问题是:这足以容纳大约 1000 万个条目吗?

def self.generateId
  (0..15).collect{(rand*16).to_i.to_s(16)}.join
end
4

3 回答 3

2

这是经典的生日问题。

使用m=10^7and n=10^20(Since 2^64~ 10^20),碰撞概率由下式给出:

p = 1 - exp(-m^2/(2*n))

给出碰撞概率5e-07

我会说无需更换的采样是您的最佳选择。

于 2013-05-07T12:54:31.930 回答
0

我会将它设为 128 位长,这样您就不必担心 10M 记录

于 2013-05-07T09:59:20.943 回答
0

2^64 大约是 EDIT:10^31 10^21,比 10^7(1000 万)大 10^14 倍。因此,仅使用 64 位几乎是完全安全的。

于 2013-05-07T10:29:17.533 回答