如何实现用于校验和和冗余的Damm算法



这里有人知道任何教科书或行业指南为普通工程师(而不是数学博士)实现Damm算法提供了实用指南吗?

具体来说,我想知道拉丁方块是如何生成的,而不是盲目地复制维基百科上提供的以10为基数的方块,或者剪切粘贴别人未检查的代码。

我正在寻找一个灵活的基数系统,包括(但不限于)基数10、16、32或36(10个数字加26个英文字母)。我相信上述方案支持这一点(除了2和6之外的所有基础),有人知道这是否正确吗?

H.Michael Damm的博士论文有英文版吗?

是否有一种方法可以添加额外的校验位,以在编号方案中包括冗余,即将四个数据位的有效载荷扩展到七个数字,其中七个数字中只有四个需要正确,并且仍然允许完全恢复原始数据?

即如果1234有三个冗余数字,比如789,则1234789可以作为1X3XX89发送。

这在国际银行号码中使用的mod-97方案中似乎是可能的,但这似乎没有非基数-10 Damm方案的灵活性,也没有一些更好的语音错误检测。

我甚至不知道从哪里开始寻找。

我正在寻找一个灵活的基数系统,包括(但不限于)基数10、16、32或36(10个数字加26个英文字母)。我相信上述方案支持这一点(除了2和6之外的所有基础),有人知道这是否正确吗?

是的。看见http://www.md-software.de/math/DAMM_Quasigruppen.txt包含高达64阶的Damm算法的Quasigroup;2.6

H.Michael Damm的博士论文有英文版吗?

我没见过。不过,你可以试着用商业工具翻译一下。但是,您可以查看http://www.sciencedirect.com/science/article/pii/S0012365X06004225

您可以将基数n转换为基数10并计算校验位。

我甚至不知道从哪里开始寻找。

请参阅源代码为Java和JavaScript的谷歌代码上的校验数字系统和基于校验数字方案的错误检测

最新更新