Давайте для начала посмотрим, как устроен сам этот код. Загадано число от 0 до 31 — то есть его 5 бит двоичной записи,
a_4 a_3 a_2 a_1 a_0.
Сопоставим нашим карточкам 16 вершин 4-мерного булевского куба {0,1}^4. И превратим наши 5 бит в 5 коэффициентов аффинной (линейной неоднородной) функции на этом кубе:
L (x_0,x_1,x_2,x_3) = a_0 x_0 + a_1 x_1 + a_2 x_2 + a_3 x_3 + a_4.
Её 16 значений во всех вершинах — это и есть наш код.
И то, что кодовое расстояние равно 8, проверяется мгновенно: ведь ненулевая аффинная функция на булевском гиперкубе ненулевая по меньшей мере в половине его вершин (или во всех, если она константа).
Правда, изящно?
Осталось научиться восстанавливать исходное число!
Post #4329
1.82K
