![]() |
1
372
是的,你可以。由于guid的长度是128位,因此不可否认,有一种很小的可能会出现clash,但是单词“minute”远不够强大。有 这么多的guid 几万亿 其中随机的,你仍然更有可能被陨石击中,而不是有一次碰撞(从地球上) Wikipedia ). 如果不是随机生成,而是 例如 你的 计算机。 编辑1: 为了回答您的额外问题,测试一组guid唯一性的最佳方法就是假设它们都是唯一的。为什么?因为,考虑到你生成的GUID的数量,GUID冲突的几率要小于宇宙射线在你的计算机内存中翻转一点,并把你想运行的任何“精确”算法给出的答案搞砸的几率(看到了吗 this StackOverflow answer 为了数学。) 有一个 巨大的 银河系搭便车指南 : 既然有 about 7Ã10 22 stars in the universe 128 GUIDs,那么大约有4.8610个 几乎 每颗星星的图形符号。如果每一颗恒星都有一个像我们这样人口繁衍的世界,那么在每一颗恒星周围, every human or alien who had ever lived 将有权获得四万五千多个guid。为了历史上的每一个人,为了宇宙中的每一颗星星。GUID空间的巨大程度与整个宇宙的大小相同。你知道吗 不 我需要担心。 ( 编辑2: |
![]() |
2
43
我计算了一些有代表性的碰撞概率。具有中指定的122位uuid
the Wikipedia article
,如果生成至少
Some numbers for comparison can be found on Wikipedia. 因此,你可以安全地为每一个生活过的人类、可观测宇宙中的每个星系、海洋中的每一条鱼以及地球上的每一只蚂蚁分配一个UUID。 然而 ,如果你为人类一年内生产的每一个晶体管、地球上的每一只昆虫、地球上的每一粒沙子、可观测宇宙中的每一颗恒星或任何更大的物体生成一个UUID,碰撞几乎是肯定的。 如果每秒生成10亿个uuid, it would take about 36 years 得到10%的碰撞概率。 最终,在人类历史进程中产生的一组uuid之间可能会发生冲突。不过,发生碰撞的uuid用于相同目的的概率非常小,因此在实践中没有问题。 |
![]() |
3
8
维基百科上提供了碰撞可能性的分析: http://en.wikipedia.org/wiki/Uuid#Random_UUID_probability_of_duplicates 如链接中所述,这将受到随机数生成器属性的影响。
布卢姆过滤器可能是合适的;它可以快速地告诉您GUID是否唯一,但是有可能出现错误的冲突指示。如果一次测试一个批,另一种方法是对批进行排序并比较每个连续的元素。 |
![]() |
4
5
一般来说,是的,这是可以肯定的假设。
当然,这需要一个好的GUID生成器。所以问题是你对生成GUID的工具有多信任,它有自己的测试吗? |
![]() |
5
0
虽然有可能发生碰撞,但可能性很小(数学 here )可以肯定的是,它们实际上是不同的。 |
![]() |
6
0
|
|
7
0
这个话题让我想起一副纸牌场景。这就是说,有这么多的方法可以安排一副牌52张,它几乎可以肯定的是,没有2个适当洗牌牌牌组曾经存在过,一直在同一顺序。
在这个例子中,有40个被洗牌的牌组,并且想要确定它们都是独一无二的,这不是不可能的,其中的2个是相同的,但是如果你能够每十分之一秒洗牌一次所有的牌组,并且你从宇宙诞生时就开始了,那么这很可能不会发生。 |
![]() |
Vesania94 · 我不知道如何根据谷歌表单中的特定标准转换唯一值 3 年前 |
![]() |
Ujjawal Bhandari · 不区分大小写唯一保留原始[重复] 3 年前 |
|
FyZ1K · 我的GetUniqueID方法是否以递归溢出结束? 7 年前 |
![]() |
DeeeeRoy · 从列表中删除列表的重复元组 7 年前 |
![]() |
sp_m · 从多个字段上的嵌套集合中选择不同的列表 7 年前 |
![]() |
Bram Vanroy · 在列表之间获取唯一的产品并维护输入顺序 7 年前 |
![]() |
fightstarr20 · PHP-对象数组中的唯一计数 7 年前 |
![]() |
Jakub Mosakowski · Xml架构唯一性不检查唯一性 7 年前 |
![]() |
Mia · 在Python熊猫->字符串列表中查找两列的交点 7 年前 |