Damm 算法的替代基 table
Alternative base table for Damm algorithm
Damm 算法非常适合处理校验位:
https://en.wikipedia.org/wiki/Damm_algorithm
我想将它用于一个应用程序的两个不同实体。但是,对于相同的号码,它们不应具有相同的校验位。
所以我必须为每个实体使用不同的基础table。基 table 是一个 n=10.
的完全反对称拟群
来自 Wikipedia 的示例:
|0 1 2 3 4 5 6 7 8 9
-+-------------------
0|0 3 1 7 5 9 8 6 4 2
1|7 0 9 2 1 5 4 8 6 3
2|4 2 0 6 8 7 1 3 5 9
3|1 7 5 0 9 8 3 4 2 6
4|6 1 2 3 0 4 5 9 7 8
5|3 6 7 4 2 0 9 5 8 1
6|5 8 6 9 7 2 0 1 3 4
7|8 9 4 5 3 6 2 0 1 7
8|9 4 3 8 6 1 7 2 0 5
9|2 5 8 1 4 3 6 7 9 0
如何生成第二个不同的但也是 n=10 的?
这里列出了 n=10 的第二个 table:
http://www.md-software.de/math/DAMM_Quasigruppen.txt
另一种方法是使用相同的 table 但从临时数字的另一个初始值开始,例如1而不是0。然后校验位总是不同的,但缺点是前导1不会改变校验位,因此对于固定长度的数字可能只是suitable。
这是 n=10 的另一个 table,来源未知。
据说anti-symmetric。
YMMV
0 9 8 7 6 5 4 3 2 1
1 0 5 8 7 6 9 4 3 2
2 1 0 9 8 7 6 5 4 3
3 2 1 0 5 8 7 6 9 4
4 3 2 1 0 9 8 7 6 5
9 4 3 2 1 0 5 8 7 6
6 5 4 3 2 1 0 9 8 7
7 6 9 4 3 2 1 0 5 8
8 7 6 5 4 3 2 1 0 9
5 8 7 6 9 4 3 2 1 0
Damm 算法非常适合处理校验位: https://en.wikipedia.org/wiki/Damm_algorithm
我想将它用于一个应用程序的两个不同实体。但是,对于相同的号码,它们不应具有相同的校验位。
所以我必须为每个实体使用不同的基础table。基 table 是一个 n=10.
的完全反对称拟群来自 Wikipedia 的示例:
|0 1 2 3 4 5 6 7 8 9
-+-------------------
0|0 3 1 7 5 9 8 6 4 2
1|7 0 9 2 1 5 4 8 6 3
2|4 2 0 6 8 7 1 3 5 9
3|1 7 5 0 9 8 3 4 2 6
4|6 1 2 3 0 4 5 9 7 8
5|3 6 7 4 2 0 9 5 8 1
6|5 8 6 9 7 2 0 1 3 4
7|8 9 4 5 3 6 2 0 1 7
8|9 4 3 8 6 1 7 2 0 5
9|2 5 8 1 4 3 6 7 9 0
如何生成第二个不同的但也是 n=10 的?
这里列出了 n=10 的第二个 table:
http://www.md-software.de/math/DAMM_Quasigruppen.txt
另一种方法是使用相同的 table 但从临时数字的另一个初始值开始,例如1而不是0。然后校验位总是不同的,但缺点是前导1不会改变校验位,因此对于固定长度的数字可能只是suitable。
这是 n=10 的另一个 table,来源未知。 据说anti-symmetric。 YMMV
0 9 8 7 6 5 4 3 2 1
1 0 5 8 7 6 9 4 3 2
2 1 0 9 8 7 6 5 4 3
3 2 1 0 5 8 7 6 9 4
4 3 2 1 0 9 8 7 6 5
9 4 3 2 1 0 5 8 7 6
6 5 4 3 2 1 0 9 8 7
7 6 9 4 3 2 1 0 5 8
8 7 6 5 4 3 2 1 0 9
5 8 7 6 9 4 3 2 1 0