Bases numéricas y bases americanas: matemáticas letales

Piensa en un número. El que sea. Y como sea. Probablemente habrás pensado en el 4, el 8, el 25 o el 1 729. Apostaría a que no has pensado en el IV, el \\\\ o el 10010110111. Y son números igualmente, pero como estamos acostumbrado al sistema de numeración posicional en base decimal ni nos planteamos que los números se pueden expresar de otra manera.

Por partes. Recordemos que los números son un concepto ideal, una abstracción que expresa una cantidad, pero al no ser algo físico, necesitamos para comunicarnos una manera de simbolizarlos. En las lenguas naturales tenemos palabras como «uno», «one», «Eins» o ««. Pero a la hora de escribir y realizar las operaciones aritméticas básicas entramos en el mundo de los sistemas de numeración. Esto es, un conjunto de símbolos y de reglas de construcción para expresar todos los números e indicar cómo construirlos.  egipcios1

Quizás, a la hora de construir un sistema de numeración lo más intuitivo es dar símbolos y luego ir sumando para ir formando los distintos números. Si al primer número le asignamos un palito, y al décimo número una herradura invertida, no es difícil concluir que, lo que en nuestra cultura sería el 22, serán dos palitos y dos herraduras invertidas. O dos herraduras invertidas y dos palitos. Este detalle es importante, puesto que denota que estamos ante un sistema de numeración no posicional, en concreto, ante el egipcio.

Este sistema puede ser útil (y de hecho lo fue en muchas culturas) hasta cierto punto, pero llega un momento en que los números son demasiado grandes como para representarlos por «acumulación de símbolos» (más que nada porque la lectura y escritura se haría farragosa). En este momento fue donde nació la otra rama de los sistemas de numeración: el posicional. Es decir, el valor de cada símbolo depende de donde esté, en vez de tener un valor absoluto por si mismo. El «3» en 3 000 es cien veces más grande que en 30. Pero aquí surge otro problema: ¿cuantos símbolos utilizamos?

Las bases al rescate

Se define base al cardinal del conjunto de símbolos de un sistema de numeración posicional, hablando en plata, la cantidad de símbolos para representar números. Así llegamos a nuestro terreno donde tenemos diez símbolos: {0,1,2,3,4,5,6,7,8,9} recuperando la definición del principio: sistema de numeración posicional en base decimal (o base 10). Pero no es la única, ni de lejos. Teóricamente podríamos formar infinitos sistemas de numeración pero un sistema de 325 símbolos… muy práctico no es que sea. Algunos de los más utilizados son el sistema sexagesimal (base 60), originado en Babilonia, y útil por la gran cantidad de divisores que tiene. De hecho lo seguimos conservando para todo lo relacionado con el tiempo (una hora tiene 60 min., por ejemplo) y en los grados de una circunferencia, 360 (60*6). Por supuesto, el decimal (base 10), surgido posiblemente por la cantidad de dedos en las dos manos, haciendo mucho más fácil su recuento. Y entonces aparece el mundo de la informática, y la necesidad de representar bits, y paquetes de estos, bytes. Puesto que 8 bits es un byte, algunos de los sistemas más utilizados son el octal (base 8) y el hexadecimal (base 16). Pero falta uno importante, ¿verdad?

binario

10010101001…

Base 2, el sistema binario, del que ya hablamos en una entrada anterior. Dos símbolos, el 1 y el 0, utilizados para representar cuando circuito está abierto o cerrado. Y tiene la ventaja de que por lo simple que es, los ordenadores trabajan con gran rapidez y efectividad. Pero como humanos, esta base nos puede resultar un poco más lenta de tratar, por lo que necesitamos cambiar de base, expresar un número en una base distinta a la que está, por ejemplo poner en sistema decimal un número en base 2. Para el que quiera más detalle, aquí tenéis una explicación bastante buena de cambio de base de decimal a binario y aquí la inversa, y que se puede extrapolar a cualquier base.

Y de manera similar a cómo cambiamos de base con números enteros, lo podemos hacer con números decimales. Y a partir de aquí empiezan a surgir algunas propiedades interesantes, como que un número con infinitas cifras decimales en una base puede ser finito en otra base. Esto ocurre, por ejemplo, con el 0.1 en base 10 que en base binaria es infinito: 0.0001100110011001100110011001100… Y este detalle nimio, en un mundo de máquinas que trabajan con cantidades finitas puede causar problemas fatales.

Un pequeño error para una máquina, un gran fallo para la humanidad

patriotEn el 25 de febrero de 1991, durante la Guerra del Golfo, un fallo de aritmética por una mala aproximación en el reloj interno de un Misil  Patriot americano que debía interceptar a un Scud iraquí, produjo la muerte de 28 soldados americanos y alrededor de otras 100 personas fueron heridas. El problema se arrastró desde el principio: a la hora de convertir el tiempo de décimas de segundo a segundos hay que dividir por 10, es decir, multiplicar por 1/10. Ahora bien, la cantidad de decimales del 0.1 en binario es, como hemos dicho, infinito, por lo que el ordenador cortó el número por la cifra número 24 (en realidad cortó 23 y una cifra donde guardaba el signo). Esto es, almacenó el número 0.00011001100110011001100. Lo que ocasiona un error absoluto (el valor «real» menos el aproximado) de:

0.0001100110011001100110011001100 \ldots - 0.00011001100110011001100 = 0.\underbrace {00\ldots 00}_{23}1100110011\ldots

Que pasado a base decimal es el número 0.00000009536743164062501.

Parece poco, pero teniendo en cuenta que la batería del misil estuvo funcionando sin descanso durante unas 100 horas, este error, pasando de décimas de segundo a segundos, se convierte en:

0.00000009536743164062501 \cdot 3\;600\;000_{dec.\;de\;seg.\;en\;100\;horas} \approx 0.34332275390625 _{seg.}

Puesto que el Scud que debía interceptar viajaba a 1 676 metros por segundo , se desplazó en ese tiempo
1\;676_{m/s} \cdot 0.34332275390625_{seg.} = 575.408935546875_{metros}
Más de medio kilómetro, lo suficiente como para que el Patriot no lo alcanzase y el misil aterrizara en una base norteamericana acabando con la vida de 28 soldados y otras 100 personas fueron heridas.

Así, la próxima vez que redondeéis números infinitos como pi a «3.14», al menos no digáis la típica frase de

Bah, si es lo mismo.

¡Y no te olvides de seguir a Scire Science en Facebook y Twitter!


MEA CULPA:

Esta entrada ha sido modificada, ya que había unos errores de traducción más alguna que otra errata.
Ahora debería estar bien, todo gracias a la inestimable ayuda de Alberto Márquez (@twalmar), Fernando Frías (@FerFrias) y David Orden (@ordend).
Mil gracias, maestros.

 

Fuentes:

http://www.ima.umn.edu/~arnold/disasters/patriot.html

Haz clic para acceder a 215614.pdf

http://en.wikipedia.org/wiki/MIM-104_Patriot

Acerca de ResisZienzia

Aquí os explico un poco más sobre mí... https://scirescience.wordpress.com/2014/05/31/sobre-el-autor/ Pd: para "navegar" entre entradas, a la derecha en el principio de la página tenéis las distintas categorías.
Esta entrada fue publicada en Matemáticas y etiquetada , , , , , , , , , , , , , , , , , , , , , , , , , , . Guarda el enlace permanente.

¿Alguna duda? ¿Quieres matizar? No dudes, pues, en comentar.