gpt4 book ai didi

c++ - 计算 UUID 唯一的概率

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:52 35 4
gpt4 key购买 nike

我不可能使用 Boost,因此我编写了一个相当简单的代码来生成 UUID。但是,我不知道如何计算这段代码生成的 UUID 的唯一性!有人可以解释一下如何计算由以下代码生成的 UUID 唯一的概率吗?

string UUID;
uint8_t uuidLength = 32;
uint8_t asciiSets[][2]={
{48, 10}, //Numbers 0-1
{65, 26}, //Alphabet a-z
{97, 26} //Alphabet A-Z
};
UUID.reserve(uuidLength);

uint8_t counter;
srand(time(NULL));

for(counter = 0;counter<uuidLength;counter++)
{
uint8_t set = rand()%3;//Choose one of the three sets of ascii ranges
uint8_t start = asciiSets[set][0];
uint8_t range = asciiSets[set][1];
UUID[counter] = rand()%range+start;
}

最佳答案

首先要观察的是,这非常不太可能生成 UUID。 UUID 包含 32 个十六进制数字,而您生成的 62 个字符中只有 22 个是十六进制数字。这大约是每位数字的三分之一,因此您实际生成 32 位十六进制数的可能性是 250 万亿分之一。

只需使用 Boost。

关于c++ - 计算 UUID 唯一的概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43089081/

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