Вопрос

Я читал о горизонтальных и вертикальных кодах проверки четности. Одним из свойств этих кодов является то, что окончательная проверка четности (нижний правый бит) равен модулю 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 примет во внимание же соображения. Поскольку количество общих ошибок одинаково, это будет четное число или нечетное число либо для строк, так и столбцов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top