我正在为检查数字方案实施Verhoeff算法,但是在Web源中似乎存在一些分歧,即哪些排列周期应构成置换表的基础。

维基百科 用途:(36)(01589427)

尽管 显然, ,数值配方使用不同的周期和 这本书 用途:(0)(14)(23)(56789),从1990年的文章引用。它还指出,Verhoeff使用了Wikipedia语录。

现在,我的数字理论有点生锈,但是Wikipedia周期显然会在第8个力量之后重复,而这本书将占10次,尽管它说S^8 = s。表2.14(b)在2个周期中还有其他错误,因此无论如何这都是可疑的。

不幸的是,我没有原始文章的副本(而且太紧了/厌恶,出版商仍将40年历史的知识持有赎金),也没有数字食谱的副本(并不愿意检查)安装其偏执狂诱导的复制保护插件以在线查看)。

那么有人知道哪个是正确的吗?他们俩都正确吗?

有帮助吗?

解决方案

有一个旧版本的数值食谱 这里 作为PDF。 Verhoeff算法在第20.3节中进行了描述。它使用与Wikipedia文章相同的排列。

其他提示

置换(0)(14)(23)(56789)优于置换(36)(01589427)。这是因为(36)(01589427)只能检测到单个换位误差的88.89%,而(0)(14)(23)(56789)可以检测所有这些错误。如果使用(36)(01589427),请考虑将数字代码716作为检查数字。即,代码将为7160。但是,如果数字1和6进行了转移,则该检查数字方案不会给出错误,因为检查总和为零。 (0)(14)(23)(56789)并非如此。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top