gpt4 book ai didi

random - 如何为实体创建唯一的 7 位代码?

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

当用户在我的系统中添加新项目时,我想为该项目生成一个唯一的非递增伪随机 7 位代码。创建的项目数量只会以千计 (<10,000)。

因为它需要是唯一的并且没有两个项目具有相同的信息,所以我可以使用哈希,但它需要是一个可以与其他人共享的代码 - 因此是 7 位数字。

我最初的想法只是循环生成一个随机数,检查它是否已经被使用,如果是,冲洗并重复。鉴于碰撞的可能性很低,我认为这是一个合理但令人反感的解决方案。

回复 this question建议生成一个所有未使用数字的列表并重新排列它们。我可能会在数据库中保留一个这样的列表,但我们正在谈论 10,000,000 个条目,用于相对不常见的内容。

有没有人有更好的方法?

最佳答案

选择一个 7 位数字 素数数字A,和一个大素数 B 号,和

int nth_unique_7_digit_code(int n) {
return (n * B) % A;
}

由此生成的所有唯一代码的计数将为 A。

如果您想更“安全”,请执行 pow(some_prime_number, n) % A , IE。
static int current_code = B;
int get_next_unique_code() {
current_code = (B * current_code) % A;
return current_code;
}

关于random - 如何为实体创建唯一的 7 位代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245292/

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