Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Корректирующие коды - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заданный текст закодировать http://www.cyberforum.ru/cpp-beginners/thread775491.html
Заданный текст "Разрешение принтера – это количество точек, напечатанных на участке единичной длины." закодировать: а). равномерным кодом с кодовыми комбинациями наименьшей длины. б). кодом...
C++ Перевести заданное десятичное число в 2-ю, 8-ю, 16-ю, двоично-десятичную системы и обратно Перевести заданное десятичное число в 2-ю, 8-ю, 16-ю, двоично-десятичную системы и обратно. число 432 http://www.cyberforum.ru/cpp-beginners/thread775487.html
Составить программу вычисления значения функции для значения аргумента x, вводимого с клавиатуры C++
Формула f(x) = ln 3 ( x 2 +1 ) + arctg 2 ( x 2 + 1 ) Помогите, пожалуйста
C++ Вычислить сумму элементов матрицы
Вычислить сумму элементов матрицы A кратных 3. Значения массива и количество строк и столбцов в массиве ввести с клавиатуры. Максимальная размерность массива 20 на 20. Очень прошу помочь
C++ Массивы структур, циклы http://www.cyberforum.ru/cpp-beginners/thread775460.html
Пишу программку из книги. Задание звучит так: Коrда вы вступите в Блаrотворительный Орден Проrраммистов (БОП), к вам могyт обращаться на заседаниях БОП по вашему настоящему имени, по должности либо...
C++ Преобразовать целые числа в битовую посследовательность Имеется в файле посследовательность целых чисел X1,X2,X3,X4 unsigned long int, расположенных построчно. Нужно преобразовать эти целые числа в битовую посследовательность x1 1, x1 2, x1 3, x1 4, x1 5,... подробнее

Показать сообщение отдельно
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,274
Записей в блоге: 2
Завершенные тесты: 1
31.01.2013, 16:48

Не по теме:

Буквально пару дней назад сдал эказмен по этому предмету
Сейчас реально некогда писать, если завтра до вечера никто не ответит, то помогу.



Добавлено через 21 час 1 минуту
Так получилось, что сегодня тоже некогда (сессия), но немного помогу.
Цитата Сообщение от Лидия23 Посмотреть сообщение
а). преобразовать заданное информационное слово 10101101011 из 11 двоичных цифр в двоичное слово кода Хемминга (15,11);
из условия имеем
n = 15 (общее число символов)
k = 11 (число информационных символов)
m = 15 - 11 = 4 (число контрольных символов).
в коде Хэмминга контрольные символы располагаются на местах http://www.cyberforum.ru/cgi-bin/latex.cgi?{2}^{i}, где i - целое число. Т.е. для n = 15 и m = 4 имеем контрольные символы на позициях 1, 2, 4, 8
запишем наше число 10101101011
- - 1 - 0 1 0 - 1 1 0 1 0 1 1 там, где прочерк будут контрольные символы.
составим уравнения: уравнения составляются следующим образом - берутся символы начиная с http://www.cyberforum.ru/cgi-bin/latex.cgi?{2}^{i} по http://www.cyberforum.ru/cgi-bin/latex.cgi?{2}^{i} через http://www.cyberforum.ru/cgi-bin/latex.cgi?{2}^{i} (т.е. с первого по одному через один, потом со второго по два через два, далее с четвертого по четыре через четыре и т.д.).
а1 + а3 + а5 + а7 + а9 = 0
а2 + а3 + а6 + а7 + а10 + а11 + а14 + а15 = 0
а4 + а5 + а6 + а7 + а12 + а13 + а14 + а15 = 0
а8 + а9 + а10 + а11 + а12 + а13 + а14 + а15 = 0
где аN - биты нашего кода, отчет ведется слева на право и начинается с одного, а "+" означает сложение по модулю два (сумма по модулю 2 - это остаток от деления на 2)
выведем уравнения кодирования (просто переносим неизвестные символы в правую часть ур-я)
а1 = а3 + а5 + а7 + а9
а2 = а3 + а6 + а7 + а10 + а11 + а14 + а15
а4 = а5 + а6 + а7 + а12 + а13 + а14 + а15
а8 = а9 + а10 + а11 + а12 + а13 + а14 + а15

высчитаем неизвестные биты
а1 = 1 + 0 + 0 + 1 = 0
а2 = 1 + 1 + 0 + 1 + 0 + 1 + 1 = 1
а4 = 0 + 1 + 0 + 1 + 0 + 1 + 1 = 0
а8 = 1 + 1 + 0 + 1 + 0 + 1 + 1 = 1
теперь можем закодировать наше сообщение, подставив вместо прочерков подсчитанные биты
0 1 1 0 0 1 0 1 1 1 0 1 0 1 1
готово!

Цитата Сообщение от Лидия23 Посмотреть сообщение
б). дано двоичное слово 101111001011101 кода Хемминга (15,11). Проверить, была ли допущена в этом слове одиночная ошибка. Исправить одиночную ошибку, если она есть.
Код Хэмминга допускает поиск двойных ошибок либо поиск и исправление одиночной ошибки. Поверим условию задания и будем искать одиночную ошибку.
тут делается все, тоже самое, что выше, т.е. нам нужны ур-я. Они у нас уже есть
а1 + а3 + а5 + а7 + а9 = 0
а2 + а3 + а6 + а7 + а10 + а11 + а14 + а15 = 0
а4 + а5 + а6 + а7 + а12 + а13 + а14 + а15 = 0
а8 + а9 + а10 + а11 + а12 + а13 + а14 + а15 = 0
имея код 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 посчитаем ур-я
0
0
0
1
имеем синдром ошибки S = 1000 (двоичное) = 8 (десятичное), т.е. имеем ошибку в 8 разряде (в коде Хэмминга синдром ошибки указывает на номер разряда с ошибкой, при этом отчет ведется с нуля справа на лево). Исправим ошибку
1 0 1 1 1 1 1 0 1 0 1 1 1 0 1
все!

Код писать некогда, но теперь имея решенное задание думаю это уже не проблема, любой с минимальными знаниями С++ сможет это сделать.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru