Dan*_*een 7 language-agnostic puzzle algorithm math hash-code-uniqueness
我有一个系统,需要一个唯一的6位数代码来表示一个对象,我正在考虑一个很好的算法来生成它们.以下是预先要求:
我有一个想法听起来像它会工作,但我在数学上不够好,无法弄清楚如何实现它:如果我从0开始并增加N,然后转换为基数20,似乎应该是N的一些值,让我可以在重复任何值之前计算0-63,999,999中的每个值.
例如,使用N = 3(因此10 mod 3)从0到9:0,3,6,9,2,5,8,1,4,7.
是否有一些神奇的数学方法可以计算出一些较大数字的N值,这些数值能够计算整个范围而不重复?理想情况下,我选择的数字会在集合周围跳跃,这样就不会有明显的模式,但我不确定它是多么可能.
或者,一个保证0-64百万的唯一性的散列算法可以工作,但我太愚蠢了,不知道这是否可行.