Este desafío es una continuación de Detección de errores, parte 1: el comprobador de Hamming . Para recapitular:
1s que hay dentro de su región: un 0 indica una cantidad par de 1s y un 1 indica una cantidad impar de 1s.1, 2, 4, etc., o en binario 1, 10, 100, etc.0100 (decimal 4), los índices de su región son 0101, 0110, 0111, 1100, 1101, 1110 y 1111. Específicamente, todos tienen un 1 en el tercer dígito empezando por la derecha. Este patrón se aplica a todas las regiones:

En este desafío, tu tarea es escribir una función que tome un bloque de Hamming y complete todos los bits redundantes con el valor apropiado. Los bits redundantes ya están colocados, pero todos son 0.
Esta vez, se utilizará el bit con índice 0. Este bit codificará información sobre todo el bloque y tomará el valor (0 o 1) que haga que la cantidad total de 1s sea par. Usar este bit adicional permite que el receptor detecte si se han producido dos errores, aunque no sus posiciones.
Tu código debe funcionar con bloques de distintos tamaños (los tamaños siempre serán potencias de dos).
hamming_coder("0000010100011000") ➞ "0100110100011000"
hamming_coder("0000000001010000") ➞ "1010000001010000"
hamming_coder("00010111010110000111001110001010") ➞ "00110111010110000111001110001010"
hamming_coder("00000110001001000111010100100101") ➞ "10101110101001000111010100100101"