当用户在我的系统中添加新项目时,我想为该项目生成一个唯一的非递增伪随机 7 位代码。创建的项目数将仅数以千计(<10,000)。
因为它必须是唯一的并且没有两个项目具有相同的信息,所以我可以使用哈希,但它需要是他们可以与其他人共享的代码 - 因此是 7 位数字。
我最初的想法只是循环生成一个随机数,检查它是否尚未使用,如果是,请冲洗并重复。考虑到碰撞的可能性很小,我认为这是一个合理的解决方案。
对这个问题的回答建议生成所有未使用数字的列表并将它们改组。我可能可以在数据库中保留这样的列表,但我们正在谈论 10,000,000 条相对不常见的条目。
有没有人有更好的方法?