我正在实现Verhoeff算法作为一种校验位方案,但是网络来源之间似乎存在一些争议,关于哪个置换循环应该成为置换表的基础。
维基百科使用:(36)(01589427)
而显然, Numerical Recipies 使用了不同的循环,这本书使用的是:(0)(14)(23)(56789),引用自Winters在1990年发表的一篇文章。它还指出,Verhoeff使用了维基百科引用的那个循环。
现在,我的数论有点生疏,但是维基百科的循环明显会在第8次幂后重复,而书中的循环则需要10次幂,尽管它说s^8=s。表2.14(b)在2-循环方面还存在其他错误,所以这是可疑的。
很遗憾,我没有原始文章的副本(并且太紧了,不想支付/对40年前的知识仍被出版商绑架感到恶心),也没有 Numerical Recipes 的副本来检查(而且我不愿安装他们的偏执引起的拷贝保护插件来在线查看)。
那么有人知道哪个是正确的吗?它们都正确吗?