Proyecto académico diseñado para para demostrar de forma práctica el funcionamiento de los códigos de corrección de errores, especificamente el código Hamming
- Python: Para la lógica del juego de adivinanza en consola.
- Desarrollo Web (HTML5, CSS3, JavaScript): Para la simulación de transmisión de mensajes y la herramienta visual de comprobación de errores.
Un juego de consola donde el programa adivina qué animal estás pensando de una lista de 16 opciones (León, Delfín, Elefante, etc.) haciéndote 7 preguntas. Gracias a Hamming (7,4), puedes mentir en una de las respuestas y el programa detectará y corregirá tu mentira (representado como un error en un bit) para adivinar el animal correctamente.
Para ejecutarlo, asegúrate de tener Python instalado y ejecuta el siguiente comando en tu terminal:
python adivino_tu_animal.pyUna página web que simula el envío de refranes codificados en binario. El sistema introduce ruido (errores) aleatoriamente en la transmisión y ofrece una herramienta para corregirlos.
Ambas aplicaciones implementan la estructura de palabra de 7 bits, donde 4 son de datos y 3 de paridad.
/*
Estructura de la palabra: 6 5 4 3 2 1 0 (con bits)
d3 d2 d1 p2 d0 p1 p0
Estructura de la palabra: 0 1 2 3 4 5 6 (con indices)
d3 d2 d1 p2 d0 p1 p0
p0 = 6^4^2^0
p1 = 5^4^1^0
p2 = 3^2^1^0
*/Extracto de comprobador.js, donde di indica que ahí hay un bit de datos, y pi indica que hay un bit de paridad.
El cálculo de paridad implementado en adivino_tu_animal.py, script.js y comprobador.js sigue la siguiente lógica para detectar errores:
- P0 comprueba los bits en las posiciones (índices): 0, 2, 4, 6.
- P1 comprueba los bits en las posiciones (índices): 0, 1, 4, 5.
- P2 comprueba los bits en las posiciones (índices): 0, 1, 2, 3.
Cada bit de paridad se calcula realizando la operación XOR con cada uno de los bits de los que se encarga.
Si el síndrome calculado (obtenido al comprobar la paridad) es distinto de 0, el valor resultante indica la posición exacta del bit que ha sido alterado, permitiendo su corrección automática invirtiendo dicho bit.
Este proyecto forma parte del Programa de Alumno Interno realizado en la Universidad de Sevilla durante el curso 2024-25 en el Departamento de Matemática Aplicada.
Tutor: Manuel González Regadera - Dpto. Matemática Aplicada (US)

