gpt4 book ai didi

algorithm - Tinyurl 风格的唯一代码 : potential algorithm to prevent collisions

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

我有一个系统需要一个唯一的 6 位代码来表示一个对象,我正试图想出一个好的算法来生成它们。以下是先决条件:

  • 我使用的是 base-20 系统(没有大写字母、数字、元音字母或 l 以防止混淆和恶语)
    • base-20 允许 6400 万种组合
  • 我可能会一次插入 5-10,000 个条目,所以理论上我会使用批量插入,这意味着使用唯一键可能不会有效或不美观(特别是如果开始出现大量冲突时)
  • 填充 10% 的组合并非不可能,因此很可能会发生大量碰撞
  • 我想确保代码不是连续的

我有一个想法,听起来可行,但我的数学还不够好,不知道如何实现它:如果我从 0 开始,递增 N,然后转换为 base-20,看起来就像 N 应该有一些值,让我在重复任何值之前从 0-63,999,999 计算每个值。

例如,从 0 到 9 使用 N=3(所以 10 mod 3):0、3、6、9、2、5、8、1、4、7。

是否有一些神奇的数学方法可以计算出某个更大的数字的 N 值,并且能够在不重复的情况下计算整个范围?理想情况下,我选择的数字会在集合中跳来跳去,以至于没有明显的模式,但我不确定这有多大可能。

或者,保证 0-6400 万值的唯一性的哈希算法可以工作,但我太笨了,不知道这是否可行。

最佳答案

您所需要的只是一个与您的 key 空间没有任何因数的数字。最简单的值是使用质数。你可以用谷歌搜索大素数,或者使用 http://primes.utm.edu/lists/small/10000.txt

关于algorithm - Tinyurl 风格的唯一代码 : potential algorithm to prevent collisions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1257825/

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