Java 可以生成多少个唯一ID
我正在使用下面的代码创建一个8个字符(包括数字和字母数字字符)的唯一IdJava 可以生成多少个唯一ID,java,uuid,Java,Uuid,我正在使用下面的代码创建一个8个字符(包括数字和字母数字字符)的唯一Id 请帮助..[可能的字符数]^[生成集id的长度]-非常简单的数学 就你而言: 36^8=282110907456[可能的字符数]^[生成集id的长度]-非常简单的数学 就你而言: 36^8=282110907456(26+10)^8=2821109907456(26+10)^8=2821109907456本质上,您可以生成的字符串总数为368 使用(使用位字符串)解释此定理: 您有8个字符的位字符串,需要填充,请从36个字
请帮助..
[可能的字符数]^[生成集id的长度]
-非常简单的数学
就你而言:
36^8=282110907456
[可能的字符数]^[生成集id的长度]
-非常简单的数学
就你而言:
36^8=282110907456
(26+10)^8=2821109907456(26+10)^8=2821109907456本质上,您可以生成的字符串总数为368
使用(使用位字符串)解释此定理:
您有8个字符的位字符串,需要填充,请从36个字符中选择1个:
__ __ __ __ __ __ __ __
36 36 36 36 36 36 36 36 (characters a -- z, 0-- 9)
因此,您有
36*36*36*36*36*36*36*36
=368=282110907456
总id。本质上,您可以生成的字符串总数为368
使用(使用位字符串)解释此定理:
您有8个字符的位字符串,需要填充,请从36个字符中选择1个:
__ __ __ __ __ __ __ __
36 36 36 36 36 36 36 36 (characters a -- z, 0-- 9)
因此,您有36*36*36*36*36*36*36*36
=368=282110907456
总id。请看这里:
重复排列
。理论上,给定一组n
元素(即bitsArray
的长度)和排列的长度(即uuidString
字符串)为r
,您将能够生成n^r唯一排列(即您的情况下的uuid)
在您的例子中,n=36(26个字母和10个数字)和r=8(uuid的长度为8),因此:
36^8 = 2821109907456
请看这里:
重复排列
。理论上,给定一组n
元素(即bitsArray
的长度)和排列的长度(即uuidString
字符串)为r
,您将能够生成n^r唯一排列(即您的情况下的uuid)
在您的例子中,n=36(26个字母和10个数字)和r=8(uuid的长度为8),因此:
36^8 = 2821109907456
有多少个唯一ID?大约一百万个。这取决于您使用的随机数生成器的质量。如果使用该随机数生成器,则只能生成一个标识符。如果它是一个低质量的线性同余生成器(对于较低的位,它的随机性非常差),那么最终得到的值可能比理论最大值(368=约28000亿)少256倍。然而,由于您生成的每个ID都需要读取以前生成的ID的整个列表,我怀疑您的计算机将在达到一百万个标识符之前摆脱困境
有多少个UUID?零。您的代码依赖于内部黑名单来避免冲突,这意味着使用您的方法生成UUID的多台计算机有相当合理的机会以冲突告终(避免冲突是使用UUID的首要目的) 有多少个唯一ID?大约一百万个。这取决于您使用的随机数生成器的质量。如果使用该随机数生成器,则只能生成一个标识符。如果它是一个低质量的线性同余生成器(对于较低的位,它的随机性非常差),那么最终得到的值可能比理论最大值(368=约28000亿)少256倍。然而,由于您生成的每个ID都需要读取以前生成的ID的整个列表,我怀疑您的计算机将在达到一百万个标识符之前摆脱困境
有多少个UUID?零。您的代码依赖于内部黑名单来避免冲突,这意味着使用您的方法生成UUID的多台计算机有相当合理的机会以冲突告终(避免冲突是使用UUID的首要目的) 阵列的长度为36。然后使用方法
r.nextInt(长度)
这意味着随机数的最大值是36,从0到35。所以最多可以得到8个索引36。数组的长度是36。然后使用方法
r.nextInt(长度)
这意味着随机数的最大值是36,从0到35。因此,最多可以得到8个索引36。错误。反过来说。如果存在
n
可能的字符,则每个字符将可能的数量乘以n
。因此,组合的数量是n^[生成id的长度]
@luqui:这不正是我写的(也许你在我编辑我的文章时写了你的评论,最初我像你说的那样写了,但我几乎马上就改正了)错误的吗。反过来说。如果存在n
可能的字符,则每个字符将可能的数量乘以n
。因此,组合的数量是n^[生成id的长度]
@luqui:这不正是我写的吗(也许你在我编辑我的文章时写了你的评论,最初我像你说的那样写了,但我几乎立即更正了它)