gpt4 book ai didi

math - 假设 GUID 始终是唯一的是否安全?

转载 作者:行者123 更新时间:2023-12-03 04:39:37 25 4
gpt4 key购买 nike

我知道发生冲突的可能性很小,但如果我生成了一批 1000 个 GUID(例如),是否可以安全地假设它们都是唯一的以节省对每个 GUID 的测试?

奖励问题

测试 GUID 唯一性的最佳方法是什么?也许是布隆过滤器?

最佳答案

是的,可以。由于 GUID 的长度为 128 位,因此无可否认,存在很小的冲突可能性,但“分钟”这个词还不够强烈。 GUID 的数量太多了,如果您随机生成数万亿个 GUID,那么您被陨石击中的可能性仍然比发生一次碰撞的可能性更大(来自 Wikipedia) )。如果您不是随机生成它们,而是使用 MAC 地址和时间戳算法例如,那么它们也将是唯一的,因为 MAC 地址在计算机之间是唯一的并且时间戳在您的计算机上是唯一的。

编辑 1:要回答您的额外问题,测试一组 GUID 唯一性的最佳方法是假设它们都是唯一的。为什么?因为,考虑到您生成的 GUID 数量,GUID 碰撞的几率小于宇宙射线在计算机内存中翻转一点并搞砸您关心的任何“准确”算法给出的答案的几率运行。 (参见 this StackOverflow answer 的数学公式。)

GUID 的数量数量巨大。引用道格拉斯·亚当斯的银河系漫游指南:

"Space," it says, "is big. Really big. You just won't believe how vastly hugely mindbogglingly big it is. I mean you may think it's a long way down the road to the chemist, but that's just peanuts to space, listen…"

由于有 about 7×1022 stars in the universe 和不到 2128 个 GUID,因此大约有 4.86×1015 — 几乎五千万亿 —每个星星的 GUID。如果这些恒星中的每一颗都拥有像我们这样人口众多的世界,那么在每颗恒星周围,every human or alien who had ever lived将有权拥有超过四万五千个 GUID。对于宇宙中每一颗恒星上历史上的每一个人。 GUID空间的巨大程度与整个宇宙的大小相当。您不需要需要担心。

(编辑 2:反射(reflection)这一点:哇。我自己都没有意识到这意味着什么。GUID 空间大得难以理解。我有点处于对此感到敬畏。)

关于math - 假设 GUID 始终是唯一的是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2977593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com