gpt4 book ai didi

c++ - 随机数或 UUID 的异或

转载 作者:搜寻专家 更新时间:2023-10-31 02:23:57 24 4
gpt4 key购买 nike

我正在开发数据结构,其中每个实体都应具有唯一标识符。我正在考虑使用 64 位随机数或 Boost UUID http://www.boost.org/doc/libs/1_57_0/libs/uuid/为此。

如果我复制某些实体,我需要为拷贝生成新的 UUID(因为否则某些实体将具有重复的 UUID)。但是更新 UUID 需要更新实体之间的链接。所以我正在考虑对所有 UUID 进行统一更改:在复制实体之前,我将生成一些 LoadingUUID 并使用公式更新所有 UUID:

NewEntityID = EntityID xor LoadingUUID

问题是:两个 UUID 的异或会大大增加 UUID 冲突的可能性吗?

最佳答案

如果两个 UUID 具有按位相关性,那么是的,将它们异或在一起会增加冲突的可能性。

编辑:两个独立的 UUID 生成器可能没有按位相关性,但很难确定,而且在创建 UUID 生成器时,这不是任何人的设计或测试目标。如果它们没有相关性,那么我预计碰撞概率不会增加。

相比之下,单个 UUID 生成器可能在其 UUID 结果之间具有按位相关性。例如。它可能会将一些位分配给时间戳。

关于c++ - 随机数或 UUID 的异或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28689631/

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