Está en la página 1de 1

Mensajes entre novios

En este ejemplo, sólo se dispone de dos


palabras, SÍ y NO. Los mensajes irán
codificados en códigos binarios. Desde
el principio, los novios acuerdan que
para decir SÍ envían 1 y para decir NO
envían 0. Imagina que la novia le
quiere decir que NO y le envía 0, pero
ocurre un error en el canal y el novio
recibe 1. ¡Eso puede tener
consecuencias terribles!

Así, piensan que este código no


detecta un error.

Para protegerse contra un error, los


novios deciden que para decir SI
enviarán 10, y para decir NO enviarán
01. De esta manera, si hay un error en el canal el novio recibirá 00 si el error es en la
primera cifra, o bien, 11 si el error es en la segunda cifra; en ambos casos el novio sabrá
que hay un error (aunque no pueda recuperar el mensaje original). De esta forma,
ambos piensan que este código detecta un error pero no lo corrige.

Por lo que buscando una mejor manera para mandar el mensaje, deciden que SÍ se
codifica 100 y que NO se codifica 011. Así, en caso de existir un error en el camino, se
puede analizar qué mensaje es el que puede recibir el novio.

Si ella dijo SÍ, envió 100, si hubiera un error, una de las cifras cambiará y el novio
obtendrá uno de los tres mensajes: 000, 110 o 101.

Ahora bien, si ella dijo NO, envió 011, si hubiera un error, el novio obtendrá uno de los
tres mensajes siguientes: 111, 001, 010.

Observa que ninguno de los seis mensajes que recibe el novio están en el lenguaje
acordado, es decir, dentro de los seis posibles casos no está ni el 100, ni el 011, por esto
el novio sabe que ocurrió un error en el canal, pero además puede saber cuál es el
mensaje que le ha enviado su novia, puesto que las tres posibilidades (cuando hay un
error y ella envió SÍ) son todas diferentes de las tres posibilidades cuando dice NO.

Entonces, este código detecta un error y lo corrige. ¡Sorprendente!

También podría gustarte