我受到这个独特的 id 代码的启发,生成了一个随机的 64 位标识符。
我的问题是:这足以容纳大约 1000 万个条目吗?
def self.generateId
(0..15).collect{(rand*16).to_i.to_s(16)}.join
end
我受到这个独特的 id 代码的启发,生成了一个随机的 64 位标识符。
我的问题是:这足以容纳大约 1000 万个条目吗?
def self.generateId
(0..15).collect{(rand*16).to_i.to_s(16)}.join
end
这是经典的生日问题。
使用m=10^7
and n=10^20
(Since 2^64
~ 10^20
),碰撞概率由下式给出:
p = 1 - exp(-m^2/(2*n))
给出碰撞概率5e-07
我会说无需更换的采样是您的最佳选择。
我会将它设为 128 位长,这样您就不必担心 10M 记录
2^64 大约是 EDIT:10^31 10^21,比 10^7(1000 万)大 10^14 倍。因此,仅使用 64 位几乎是完全安全的。