Горизонтальные и вертикальные проверки четности
-
08-10-2019 - |
Вопрос
Я читал о горизонтальных и вертикальных кодах проверки четности. Одним из свойств этих кодов является то, что окончательная проверка четности (нижний правый бит) равен модулю 2 суммы горизонтальных чеков четности, а также равны модулю 2 суммы вертикальных чеков четности.
Я не понял, почему это правда. Я вижу их в примерах, но я действительно не могу придумать какое-либо формальное / интуитивное доказательство одинаково.
Любая помощь / подсказки будут оценены.
Спасибо, Чандер
Решение
Каждая строка и столбец представляет собой сумму модуло 2. И результат представляет собой сумму всех номеров MOD 2. Неважно, как вы рассчитываете.
Правило:
((мод C) + (B Mod C)) мод C == (A + B) мод C
Другие советы
Это потому, что каждый неправильный бит распространяет паритет либо горизонтально либо вертикально.
Подумайте о вашей матрице битов:
A B C D
E F G H
I J K L
M N O P
Теперь некоторые из этих битов передаются неправильно, поэтому у вас есть в общей сложности у Ошибки, которые укладывают, но вы не знаете, где внутри матрицы.
Если вы пройдете ROWS (так что вы рассчитываете горизонтальное соревнование), вы будете уверены, что сумма каждой строки CARITY MODULO 2 будет 0, если у вас есть еще одно количество ошибок в этой строке, 1 иначе. Вы также будете уверены в том, что вы рассматриваете все они, так как вы делаете эту работу для каждой строки.
Наконец, если вы должны немного исправить отряд и изменить еще один в другом, конечный результат не изменится, поскольку вы в основном удалите 1 из строк, чтобы добавить его в другое место.
Затем подумайте о том, чтобы сделать это по столбцам, вы получите то же самое точное поведение, единственное отличие состоит в том, что ошибки могут быть распределены по-другому, но добавление вертикальной четности вместе модуль 2 примет во внимание же соображения. Поскольку количество общих ошибок одинаково, это будет четное число или нечетное число либо для строк, так и столбцов.