首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Verhoeff算法的正确排列循环

Verhoeff算法的正确排列循环
EN

Stack Overflow用户
提问于 2010-05-20 18:15:21
回答 2查看 1.1K关注 0票数 5

我正在为一个校验数字方案实现Verhoeff算法,但是在web资源中似乎有一些关于哪个排列循环应该形成排序表的基础的分歧。

Wikipedia使用:(36)(01589427)

apparently,数字食谱使用不同的周期,this book使用:(0)(14)(23)(56789),引用自温特斯1990年的一篇文章。它还指出,韦尔霍夫使用了维基百科的一句名言。

现在,我的数论有点生疏了,但维基百科的循环显然会在8次方之后重复,而书中的1将是10,尽管书中说s^8=s。表2.14(b)在2循环中还有其他错误,所以这是值得怀疑的。

不幸的是,我没有原始文章的副本(而且我太紧张了,无法支付/厌恶40年前的知识仍然被出版商勒索赎金),也没有Numerical Recipes的副本要检查(我不愿意安装他们的偏执诱导的版权保护插件来在线查看)。

那么,谁知道哪一个是正确的呢?他们都是对的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-20 19:05:27

有一个旧版本的Numerical Recipes可以用here作为PDF。Verhoeff算法在20.3节中描述。它使用了与维基百科文章相同的排列方式。

票数 3
EN

Stack Overflow用户

发布于 2011-12-23 22:15:26

排列(0)(14)(23)(56789)比排列(36)(01589427)更好。这是因为,(36)(01589427)只能检测到88.89%的单次转置错误,而(0)(14)(23)(56789)可以检测到所有转置错误。如果使用(36)(01589427),则认为数字代码716被给予0作为校验位。即,代码将是7160。但是,如果数字1和6被转置,则当校验和为零时,该校验位方案不会给出错误。这不是(0)(14)(23)(56789)的情况。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2872777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档