9 вар
.docxКонтрольная работа №5 (Пример)
Дано:
n = 15
𝐹 = (𝑥4 + 𝑥3 + 1) · (𝑥4 + 𝑥3 + 𝑥2 + 𝑥 + 1)
𝐸̃ = 506438
Найти:
𝑒8−? И10−?
Решение
Раскроем скобки полинома:
𝐹 = (𝑥4 + 𝑥3 + 1) · (𝑥4 + 𝑥3 + 𝑥2 + 𝑥 + 1) = 𝑥8 + 𝑥7 + 𝑥6 + 𝑥5 + 𝑥4 +
𝑥7 + 𝑥6 + 𝑥5 + 𝑥4 + 𝑥3 + 𝑥4 + 𝑥3 + 𝑥2 + 𝑥 + 1 = 𝑥8 + 𝑥4 + 𝑥2 + 𝑥 + 1 ⫘
1000101112
Используя таблицу разложения полинома 𝑥𝑛 + 1 (см. лекции) выпишем корни нашего полинома F:
𝑥4 + 𝑥3 + 1 – корни 𝛼8, 𝛼12, 𝛼14, 𝛼15
𝑥4 + 𝑥3 + 𝑥2 + 𝑥 + 1– корни 𝛼4, 𝛼7, 𝛼10, 𝛼13
Среди полученных корней найдѐм число m, которое определяется, как
максимальное количество корней, следующих друг за другом.
𝛼4, 𝛼7, 𝛼8, 𝛼10𝛼12, 𝛼13, 𝛼14, 𝛼15 => m = 4
Определим максимальное количество ошибок, которое может исправить полином F
𝑚
𝑚 = 𝑑𝑚𝑖𝑛 − 1 ≥ 2𝑡 + 1 − 1 = 2𝑡 → 𝑡 ≤ 2 = 2
Т.е. полином F позволяет исправить ошибки в 2-х разрядах
закодированного сообщения.
Попробуем обнаружить и исправить ошибки
𝐸̃ = 506438 = 101000110100011 2
Ищем остаток от деления 𝐸̃ на F
(cм фото)
Значит вектор ошибки, смещѐнный на 5 разрядов влево равен
2
𝑒→
Сдвинем его на 5 разрядов вправо и получим исходный вектор
ошибки
𝑒 = 1000100000000002 = 420008
Исправим ошибку
𝐸 = 𝐸̃ xor 𝑒 = 10101101000112
Выделим информационную часть кода.
Количество проверочных разрядов равно степени образующего полинома, значит r = 8.
Отбрасываем 8 разрядов справа: 𝐸инф = 101012
и переворачиваем: И = 101012 = 2110
Ответ:
𝑒 = 420008
И = 2110