64位随机ID是否足以容纳大约1000万个条目?

时间:2013-05-07 09:54:14

标签: random uniqueidentifier unique-key

我受到unique id code的启发,生成一个随机的64位标识符。

我的问题:这对于大约1000万个参赛作品是否足够好?

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

3 个答案:

答案 0 :(得分:2)

这是经典的生日问题。

使用m=10^7n=10^20(自2^6410^20起),碰撞概率由下式给出:

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

给出5e-07

的碰撞概率

我会说没有替换的采样是你最好的选择。

答案 1 :(得分:0)

我会让它长128位,这样你就不用担心10M记录了

答案 2 :(得分:0)

2 ^ 64是关于编辑: 10 ^ 31 10 ^ 21,其大于10 ^ 7(1000万)10 ^ 14倍。因此,仅使用64位几乎是完全安全的。