Автор: Victor_VG
Дата сообщения: 01.03.2012 00:50
Согласен, и потому давай уточним - коды Хэмминга и Рида-Соломона, и контроль чётности имеют в своей основе детектор ошибок срабатывающий при не выполнении условий некого уравнения решением которого является конкретный бит кода.
В этом смысле мне лучше код Хэмминга знаком - я с ним больше возился. Он представляет собой систему линейных уравнений при решении который если нет ошибок мы получим единичную матрицу, т.е массив единиц и нулей у которого все значения по диагонали из левого верхнего угла в правый нижний будут единицами, а остальные нулями. Если хоть одно значение в данной диагонали станет нулём - это признак ошибки и её положение мы можем вычислить с точностью до бита. Число исправляемых ошибок определяется свойствами кода - его кодовым расстоянием, например для кода Хэмминга (64,72) оно равно 6, и мы можем исправить до 6 неверных бит в блоке 64 бита. Большее число ошибок код может и не определить. То же относится к кодам Рида-Соломона и любым иным корректирующим кодам - если число ошибок более кодового расстояния кода, то вероятность их диагностики стремится к нулю по мере роста их количества, а вероятность их исправления нулевая.
Методы контроля чётности, различные дайджесты типа CRC-xx, SHA-1/2? MD4/MD5 только детектируют наличие ошибок, но исправить их не могут.