Damm算法的备选基表

3
Damm算法非常适用于处理校验位:https://en.wikipedia.org/wiki/Damm_algorithm 我想在应用程序的两个不同实体中使用它。但是,它们不应该对于相同的数字具有相同的检查位。
因此,我必须为每个实体使用不同的基础表。 基础表是一个完全反对称的n = 10的拟群。
维基百科上的示例: https://en.wikipedia.org/wiki/Damm_algorithm#Example
 |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不同的数字?

2个回答

0
这里列出了n=10的第二个表格:

http://www.md-software.de/math/DAMM_Quasigruppen.txt

另一种方法是使用相同的表格,但使用不同的中间数字初始值,例如1而不是0。然后校验位始终不同,但缺点是前导的1将不会改变校验位,因此它可能只适用于固定长度的数字。

1
我选择了这个答案,因为它为我的用例提供了第二个表格。谢谢。然而,创建更多表格的一般方法可能会更好。 - Alex Schneider
其他表格可以通过计算机搜索找到,在Damm的论文103页及以下可以查看。 - Michael

-1

这是另一个n=10的表格,来源不明。 据说是反对称的。 结果可能因人而异。

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

1
欢迎来到StackOverflow!虽然这提供了有用的信息,但它并没有严格回应生成此数据的请求。您能否提供任何数据来源(即使不提供推导细节),或尝试提供如何获取信息的信息? - ouflak
这个表对于n=10无效。 它没有通过位于此处的验证器:https://scastie.scala-lang.org/19ySJrbgRrCl5C0QDtn7QQ - chaotic3quilibrium

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接