基于DAMM检查数字的错误校正



如果使用DAMM算法生成检查数字,是否有一种方法可以尝试纠正错误,如果代码未验证?

nope,该算法只能用于检测错误,而不能纠正错误。

可以用一个简单的示例来证明这一点。假设您收到一个包含数字9857的数字。当您在该数字上运行算法时,结果为6。因此,其中一个数字已更改。但是哪一个呢?

通过蛮力搜索,您可以确定原始数字可以是以下任何一个:

original                                                resulting
 number             error that occurred                  number
  1857      the first  digit got changed from 1 to 9      9857
  9157      the second digit got changed from 1 to 8      9857
  9827      the third  digit got changed from 2 to 5      9857
  9850      the fourth digit got changed from 0 to 7      9857

因此,一个包含错误的数字并不能识别原始数字。

通常,可以通过更改任何一个数字来获得正确的校验和。也就是说,如果您收到带有N数字的数字,并且校验和不是0,则可以更改N数字中的任何一个以获得正确的校验和。

相关内容

  • 没有找到相关文章

最新更新