gpt4 book ai didi

java - 从字符串生成 9 位唯一值

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:24 31 4
gpt4 key购买 nike

我有员工数据,每个员工都有地址信息。我需要为邮政编码(5 个字符)和地址第 1 行(35 个字符)生成一个唯一的 9 位数字(数字或字母数字)值,这是表示位置的唯一值。也称为“换行号”。

如下图所示,当两个员工的地址相同时,Wrap Number 应相同,否则应分配新值。

哪种算法最适合生成 9 位唯一值?

附言我需要用 Java 对其进行编程。

enter image description here

最佳答案

你问的是不可能的。不,真的,不可能。

您有一个 5 位邮政编码,可以用 17 位进行编码。然后你有 35 个字符的文本。假设您将其限制为大写和小写字母,以及数字和特殊字符。图 96 个可能的字符,或每个大约 6.5 位。所以:

35 * 6.5 = 227.5 ~ 228 bits

所以你有多达 245 位的信息,你想创建一个“唯一”的 9 字符代码。您的 9 字符代码仅占用 72 位。你不能将 228 位的信息打包成 72 位而不重复。参见 Pigeonhole principle .

更好的解决方案是为每个员工分配一个序列号。如果你想制作那些 9 字符的代码,然后使用一种技术来混淆数字并使用 base-36(数字和大写字母)或类似的东西对它们进行编码。我在我的博客文章中解释了如何做到这一点,How to generate unique "random-looking" keys .

关于java - 从字符串生成 9 位唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47032996/

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