gpt4 book ai didi

java - 如果生成器(例如 UUID 的 Java 版本)未知,UUID 的哪些数字最不可能发生冲突?

转载 作者:行者123 更新时间:2023-11-29 07:25:43 25 4
gpt4 key购买 nike

假设我们有一组现有的 UUID(例如,数百万,尽管这无关紧要)可能是由不同的客户端生成的,因此我们不知道生成任何 UUID 的算法。但我们可以假设它们是流行的实现。

是否有一组 8 位或更多位数字(不一定连续,但理想情况下是)更不可能或更有可能发生冲突?

例如,我见过MySQL中的uuid()函数,当在同一条语句中使用两次时,会生成2个完全相同的UUID,除了第5位到第8位:

0dec7a69-ded8-11e8-813e-42010a80044f
0decc891-ded8-11e8-813e-42010a80044f
^^^^

一般的答案是什么?

该应用程序将公开一个更紧凑的 ID,供客户复制和粘贴或通过电话进行通信。不幸的是,我们注定要在后端使用 UUID,并且不愿意在 ID 的长版本和短版本之间创建映射是可以理解的,但是我们可以使用截断的 UUID,它偶尔会发生冲突并返回超过 1 个结果。

最佳答案

建议:前8位

1c59f6a6-21e6-481d-80ee-af3c54ac400a
^^^^^^^^

所有生成器实现都是 required to use the same algorithms对于给定的版本,所以担心后者而不是前者。

UUID version 1 & version 2对于给定的源,通常从最大到最小的熵排列。因此,前 8 位数字可能最不可能发生冲突。

UUID version 4version 3 & 5version 的保留数字外,均具有统一的熵和 variant .所以前 8 位数字与其他任何数字一样好。

关于java - 如果生成器(例如 UUID 的 Java 版本)未知,UUID 的哪些数字最不可能发生冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53402176/

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