Нет, алгоритм может использоваться только для обнаружения ошибок, а не для исправления ошибок.
Это можно продемонстрировать на простом примере. Допустим, вы получили номер, содержащий цифры 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
цифр, чтобы получить правильную контрольную сумму.