Hash 如何计算64位哈希冲突的风险?

Hash 如何计算64位哈希冲突的风险?,hash,types,conflict,uuid,bit,Hash,Types,Conflict,Uuid,Bit,我的应用程序需要全局唯一ID。我知道这有一个UUID标准,但我想知道我是否真的需要128位 我想编写自己的生成器,使用系统时间、随机数和机器网络地址生成一个适合64位的ID,因此,可以在C++中存储在无符号长It/Cuth>数据类型中。 如何确定64位对我来说是否足够?64位运行到大约18446744073709551616个组合 大约18.5亿 因此,如果您的e生成192万个哈希,那么发生冲突的几率将是1000万分之一 来源:我的想法是使用哈希函数之类的东西来生成id。我想直接使用这些属性不

我的应用程序需要全局唯一ID。我知道这有一个UUID标准,但我想知道我是否真的需要128位

我想编写自己的生成器,使用系统时间、随机数和机器网络地址生成一个适合64位的ID,因此,可以在C++中存储在<代码>无符号长It/Cuth>数据类型中。


如何确定64位对我来说是否足够?

64位运行到大约18446744073709551616个组合 大约18.5亿

因此,如果您的e生成192万个哈希,那么发生冲突的几率将是1000万分之一


来源:

我的想法是使用哈希函数之类的东西来生成id。我想直接使用这些属性不适合64位。完全正确我看到很多人都弄错了,所以我只是检查一下。很好。那么您知道如何计算给定数量的生成ID的冲突风险吗?如果生成607401个值,则概率为1/1亿