【问题标题】:How to implement the Damm algorithm for checksums and redundancy如何实现校验和和冗余的Damm算法
【发布时间】:2015-04-07 05:28:01
【问题描述】:

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

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

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

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

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

即如果 1234 有三个冗余数字,比如 789,那么 1234789 可以作为 1X3XX89 传输,其中 X 是不可读的数字,但仍然可以完全恢复。

这对于国际银行号码中使用的 mod-97 方案似乎是可行的,但这似乎不具备非 base-10 Damm 方案的灵活性,或者一些更好的语音错误检测。

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

【问题讨论】:

标签: algorithm redundancy check-digit


【解决方案1】:

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

是的。请参阅http://www.md-software.de/math/DAMM_Quasigruppen.txt,其中包含高达 64 阶的 Damm 算法的拟群,n ≠ 2,6

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

我没见过。不过,您可以尝试使用商业工具进行翻译。不过,您可以查看http://www.sciencedirect.com/science/article/pii/S0012365X06004225

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

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

请参阅 Google Code 上的 Check Digit Systems,其源代码为 Java 和 JavaScript 以及 Error Detection Based on Check Digit Schemes

【讨论】:

    猜你喜欢
    • 2011-09-11
    • 2012-09-29
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 2021-12-11
    • 2015-02-25
    相关资源
    最近更新 更多