Вам дан результат кодирования некоторого двоичного числа методом Хэмминга.
Не исключено, что в одном из его битов (но и не более чем в одном) произошла ошибка.
Требуется вывести закодированное число.
Напомним, как строится код Хэмминга. Биты в коде нумеруются слева направо начиная с 1,
при этом биты, номера которых - степени двойки (1,2,4,8 и т.д.) - биты чётности,
все остальные - информационные.
Любой информационный бит с номером i проверяется
битами чётности, сумма номеров которых даёт i. Например, бит 6 проверяется
битами 2 и 4, т.к. 2+4=6. В отсутствие ошибки любой бит четности в сумме с другими битами,
которые он проверяет, должен давать 0 по модулю 2.
Входные данные: результат кодирования - последовательность нулей и
единиц без пробелов, всего не более 32 символов.
Выходные данные: закодированное число - также последовательность
нулей и единиц без пробелов.
Пример входных данных: 001001100000101101110
Пример выходных данных: 1111000010101110
|