Latest Posts:

Mostrando las entradas con la etiqueta sistema binario. Mostrar todas las entradas
Mostrando las entradas con la etiqueta sistema binario. Mostrar todas las entradas

20 de enero de 2020

El ‘I Ching’ y el código binario

I Ching binario, o más bien binario I Ching, ya que, como en el caso del código Morse, del que nos ocupábamos en el post anterior, la binariedad es consustancial a este milenario código chino, y por tanto el adjetivo es un epíteto inseparable (o más bien un inseparable epíteto).

"Secuencia del rey Wu” o “secuencia recibida” que figura en el 'Libro de las Mutaciones'.
Efectivamente, los 64 hexagramas del I Ching son todas las posibles combinaciones (variaciones con repetición) de dos signos en grupos de seis: un segmento continuo y otro partido, que, si los sustituimos respectivamente por unos y ceros, obtenemos los números del 0 al 63 en notación binaria. Y, de hecho, una de las ordenaciones de los hexagramas, la realizada por Shao Yong en el siglo XI, sigue la secuencia de los números naturales.

Pero la ordenación de Saho Yong, que se adelantó seis siglos a la numeración binaria propuesta por Leibniz (que no hay que descartar que se inspirara en el I Ching), no es la canónica, también denominada “secuencia del rey Wu” o “secuencia recibida”, que es la que figura en el Libro de las Mutaciones tradicionalmente utilizado con fines oraculares, la misma que se reproduce en el encabezamiento de este artículo.

En términos informáticos, los hexagramas son bytes de seis bits; los ordenadores actuales, como es bien sabido, han adoptado por distintas razones (¿cuáles?) los bytes de ocho bits, que permiten la formación de 256 octetos distintos, cuatro veces más que los 64 “sextetos” del I Ching.

Cada hexagrama puede dividirse en dos trigramas, y así suele hacerse a efectos adivinatorios. Hay 8 trigramas posibles (000, 001, 010, 011, 100, 101, 110, 111), que dan lugar a 8 x 8 = 64 parejas distintas, que es otra manera de obtener los 64 hexagramas.

Así como el criterio de la ordenación de Shao Yong es evidente, la "secuencia del rey Wu" no lo es tanto. Invito a mis sagaces lectoras/es a encontrar las claves y motivos de dicha ordenación canónica.

Tomado de: El juego de la ciencia 

El alfabeto Morse y el código binario

El alfabeto Morse fue el primer código binario utilizado para comunicar mensajes complejos a gran distancia y en tiempo real.

En un interesante artículo publicado en esta misma página, Javier Sampedro relaciona el alfabeto Morse con el código genético, lo que, además de recordarme algún inquietante relato de ciencia ficción, me ha sugerido la idea del título.

Morse binario, o más bien binario Morse, como blanca nieve o ancho mar: “binario” es el epíteto del código Morse, su adjetivo inseparable, puesto que se caracteriza precisamente -y a ello debe su eficacia- por usar solo dos signos: una señal corta y una larga. Señales que, además de pulsos eléctricos o electromagnéticos, pueden ser destellos luminosos, sonidos o cualquier otra cosa que permita generar una dualidad fácilmente reconocible.

Y hablando de sonidos, todos hemos visto, en alguna película de intriga, a alguien que envía un mensaje golpeando una tubería; pero los golpes no pueden generar sonidos largos y cortos, como, por ejemplo, un silbato, así que ¿cómo consiguen comunicarse los golpeadores de tuberías? La respuesta parece obvia: no cuentan los golpes sino las pausas; pero eso puede dar lugar a ambigüedades. ¿O no? Someto la cuestión a la consideración de mis sagaces lectoras/es.

Con un código binario podemos escribir dos “mensajes” de un solo carácter (0 y 1) y cuatro de dos caracteres (00, 01, 10, 11), o sea, seis en total; con tres caracteres las posibilidades suben a 14 (2 + 4 + 8), y con cuatro, a 30 (2 + 4 + 8 + 16), y puesto que el alfabeto tiene 26 o 27 letras, según las versiones (con o sin ñ, con o sin ç), en el código Morse el máximo de puntos y líneas necesarios para definir una letra es cuatro.

Dado el actual desarrollo de las comunicaciones, el código Morse ha caído en desuso; pero no por completo, y todos conocen la señal de socorro internacional. Pero ¿por qué SOS? Parece una abreviatura de “socorro”; pero eso solo vale para algunas lenguas romances, como el castellano o el italiano; en inglés es “help”, que no tienen nada que ver. Y sin embargo hay una razón lógica para que la señal de socorro internacional sea SOS; ¿cuál es?

Tomado de: El juego de la ciencia


11 de noviembre de 2018

George Boole, el ‘arquitecto’ de la revolución digital

Profundizar en el mecanismo que rige un semáforo o en el funcionamiento de un complejo sistema informático revela una base común. Es el álgebra de Boole, una herramienta matemática cuya evolución le ha llevado mucho más allá del ámbito específico de la lógica matemática, para el que fue concebido, convirtiéndose en un pilar teórico de nuestra civilización tecnológica.

La mayoría de los circuitos electrónicos, y de los sistemas de computación en general, tienen su origen en una función lógica. Pero esta puede ser bastante larga y compleja. Por eso George Boole (1815-1864) ideó un método para simplificar esa función lógica lo máximo posible, a través de ciertas reglas básicas o propiedades. Quizás este sistema encuentra hoy en día uno de sus máximos exponentes los buscadores de Internet como Google, que hoy le reconoce el mérito a Boole con un doodle que conmemora el 200 aniversario de su nacimiento.

A mediados del siglo XIX, Boole desarrolló en su libro “An Investigation of the Laws of Thought” (1854), la idea de que las proposiciones lógicas podían ser tratadas mediante herramientas matemáticas. Estas proposiciones lógicas podían tomar únicamente dos valores del tipo Verdadero/Falso o Sí/No. Estos valores bivalentes y opuestos podían ser representados por números binarios de un dígito (bits), por lo cual el álgebra booleana se puede entender cómo el álgebra del sistema binario.

Un sistema lógico de futuro imprevisto

Él mismo resumió su trabajo en esta frase: «Las interpretaciones respectivas de los símbolos 0 y 1 en el sistema de lógica son Nada y Universo». Podría interpretarse como un anticipo de su trascendencia. Sin embargo, contrariamente a lo que se puede pensar, el álgebra de Boole no pareció tener ninguna aplicación práctica en un primer momento y sólo se le encontró un sentido, bastante abstracto, en el campo de la lógica matemática.

Fue setenta años después de su muerte, en 1938, cuando el ingeniero electrónico y matemático estadounidense Claude E. Shannon (1916 – 2001) encontró en el trabajo de Boole una base para los mecanismos y procesos en el mundo real, demostrando cómo el álgebra booleana podía optimizar el diseño de los sistemas electromecánicos de relés, utilizados por aquel entonces en conmutadores de enrutamiento de teléfono.

Además de Shannon, el ruso Victor Shestakov (1907-1987) propuso una teoría de los interruptores eléctricos basados en la lógica booleana en 1935, aunque menos conocida en un principio: su publicación se hizo años después, en 1941 y en ruso. De esta manera, el álgebra de Boole se convirtió en el fundamento de la práctica de circuitos digitales de diseño, y George Boole (a través de Shannon y Shestakov) en el arquitecto que puso los cimientos teóricos para la revolución digital.

Tomado de: Open Mind

6 de noviembre de 2015

Georges Boole: l matemático que inventó la forma en que hoy busca Google

 

Cada vez que haces una simple búsqueda en Google, o en cualquier otro buscador informático, entre los mecanismos de programación que hacen posible que encuentres lo que buscas hay unos principios de lógica que fueron concebidos hace más de 150 años.

Fue el matemático inglés George Boole quien inventó un sistema de álgebra que es clave para la programación de hoy en día.

La álgebra de Boole, o álgebra booleana, es una estructura algebraica que esquematiza las operaciones lógicas, y está presente en todas partes a nuestro alrededor: desde la programación detrás de los videojuegos a los que jugamos, hasta el código de las aplicaciones que usamos y los programas de las computadoras que utilizamos.

Se puede decir que los ladrillos con los que se construye la programación, que son los comandos o instrucciones que se le da a un sistema informático, están todos basados en la lógica de Boole.

"Si eres un programador no te puedes escapar del término booleano", dice Michael Dunn de Gospelweare, una compañía desarrolladora de iOS y Android.

AND, OR y NOT


Durante los últimos 17 años de su vida George Boole estableció el concepto de lógica algebraica en matemáticas y simplificó el mundo en enunciados básicos que tenían por respuesta Sí o No, utilizando para ello aritmética binaria.

"Las interpretaciones respectivas de los símbolos 0 y 1 en el sistema de lógica son Nada y Universo", dijo.

Este concepto, que introdujo en 1847 y expandió siete años más tarde, es lo que está presente en los programas informáticos actuales.

"Hay un enunciado booleano casi cada dos líneas de un programa informático", dice Dunn.
"No es algo sobre lo que reflexiones, porque es una parte totalmente integral de la programación".
Boole utilizó el concepto de puertas lógicas, o preguntas, que exploran un enunciado.

Las puertas lógicas más básicas son, en el lenguaje original de Boole, AND, OR o NOT. Es decir, Y, O o No en español.

Después, estas tres puertas se pueden combinar para crear enunciados más complejos.
Así que cuando buscas en internet "Miley Cyrus" hay un uso implícito de la lógica booleana del comando AND para combinar las dos palabras, "Miley" y "Cyrus".

Mucho antes de Google, durante los primeros años en que se hacían búsquedas, era frecuente usar los comandos AND, OR y NOT para filtrar los resultados.

Hoy, los avances en la tecnología de búsquedas hace que muchas se puedan realizar utilizando un lenguaje más natural.

Aún así, Google todavía le permite a los usuarios escribir OR o incluir el símbolo de sustracción - para afinar los resultados.

Juventud prolífica

Boole murió hace 150 años, cuando tenía 49.

En 1864 enfermó gravemente tras mojarse bajo la lluvia mientras caminaba hasta el aula donde daba clase.

Murió el 8 de diciembre de ese año de un derrame pleural o pleuresía, acumulación de agua en los pulmones.

Él mismo tenía cierta noción del impacto histórico que su sistema de lógica podría tener.

En 1851 le dijo a un amigo que la lógica booleana podría ser "la contribución más valiosa, si no la única, que he hecho o que probablemente haga a la ciencia y el motivo por el que desearía que me recuerden, si es que me van a recordar, póstumamente".

Y así fue.

Fuente:

BBC Ciencia

19 de agosto de 2014

Los sistemas de numeración y los números binarios


Los sistemas de numeración son símbolos y reglas para denotar cantidades  Muchas civilizaciones inventaron los suyos, por ejemplo, los romanos usaron la notación I, II, III, IV, .. etcétera.

En nuestros tiempos, el sistema de numeración que usamos cotidianamente se llama sistema de numeración posicional en base 10 (o simplemente sistema decimal).  Es decimal pues se usan diez símbolos (a saber  0, 1, 2, 3, 4, 5, 6, 7, 8, 9) y depende de la posición pues no es lo mismo 12 (uno dos) que 21 (dos uno).


* ** *** **** ***** ***** * ***** ** ***** *** ***** **** ***** *****
1 2 3 4 5 6 7 18 9 10
                   
***** ***** * ***** ***** ** ***** ***** *** ***** ***** **** ***** ***** ***** ***** ***** ***** * ***** ***** ***** ** ***** ***** ***** *** ***** ***** ***** **** ***** ***** ***** *****
11 12 13 14 15 16 17 18 19 20

¿Pero por qué usamos este sistema? ¿Y por qué se eligieron diez símbolos? Pues la respuesta está en la historia; el sistema decimal desciende de los números usados por los árabes.

Pero si nos vamos a la lógica matemática, no hay razón para usar exactamente diez símbolos; podríamos emplear cuantos quisiéramos y usar las reglas que queramos. Por ejemplo, los mayas usaron 3 símbolos y ponían símbolos arriba de otros.


Pero ya no tenemos que irnos al pasado para encontrar otros sistemas de numeración. En la actualidad, se emplea el sistema de numeración hexadecimal posicional (de dieciséis símbolos 0, 1, 2, …, 9, A, B, …, F ) para encriptar contraseñas o para denotar colores. ¿Sí los han visto no?


En decimal
En hexadecimal
Color
10, 354 714
9E001A
_______________
7, 556 367
734D0F
_______________

La relación al uso del sistema hexadecimal en los lenguajes computacionales tiene que ver en gran medida a que la información se guarda en bloques de potencia de dos (2n). Y pues el 16 es una potencia de dos: 24.

Pero el sistema de numeración que me parece más impresionante es el que tiene la menor cantidad de símbolos, el binario; con tan sólo dos símbolos (el 0 y el 1).

El sistema binario

El sistema binario es impresionante de entrada por tener tan pocos símbolos. Pues con sólo dos símbolos puedes escribir todos los números, incluyendo al cero. Pero además, aprovecha de la posición para reducir la cantidad de dígitos (como se hace en el sistema decimal).

Para los lectores que no estén familiarizados con el sistema binario, en la siguiente tabla se muestran los primeros diez números. Intenten descubrir el patrón de cómo se construyen estas representaciones y escribe los cinco números faltantes.


* ** *** **** ***** ****** ******* ********
1 10 11 100 101 110 111 1000
               
******** * ******** ** ******** *** ******** **** ******** ***** ******** ****** ******** ******* ******** ********
1001 1010            

Si lograron entender la sucesión, quedará evidente que podemos seguir este proceso indefinidamente, por lo que a cualquier cantidad (número) le podemos asociar su lista de unos y ceros; llamada notación binaria del número.

Una primera pregunta que podemos hacernos de la notación decimal es la siguiente, ¿qué cantidad representa la notación 100...00 (un uno con muchos)? Pues la respuesta es más o menos la misma que lo que ocurre en la notación decimal, vean la siguiente tabla.


Binario
10 2
100 2×2=22
1000 2×2×2=23
10000 24
Decimal
10 10
100 10×10=102
1000 103
10000 104

La simple existencia de esta notación y este parecido a la notación decimal puede parecer no muy motivante, pero tal vez la siguiente observación les resulte más impresionante.
Todo número entero es una potencia de dos o suma de potencias de dos. Por ejemplo, 6=21+22.
Para ver esto, basta con observar que la notación de binaria se transforma a una suma de potencias de dos, por ejemplo, 



43=(101011)2=25+0×24+1×23+0×22+1×21+1×20=25+23+21+20=32+8+2+1

Esto es similar a lo que muchos hemos visto en las clases de primaria para el sistema decimal: 

1235=103+2×102+3×101+5×100

Si aún no se sienten muy impresionados con el sistema binario, no se preocupen, es normal; no a todos nos da gusto acordarnos de la primaria.

Voy hacer el esfuerzo de hacérselos más interesantes, a continuación les presento unos contextos donde sin el sistema binario, no se podrían comprender tan fácilmente.

Los binarios y las monedas

El contexto que veremos es el de la elección de la denominación de las monedas.  Para hacerlo más interesante, se los dejo en forma de problema.
En un remoto país, tienen monedas de denominación distintas a las que usualmente conocemos (Por ejemplo, tienen una moneda de 32 pesos). Una maravilla de su sistema de monedas, es que una persona sólo necesita tener 8 monedas para pagar exactamente cualquier cantidad (sin centavos) desde 1 peso hasta 255 pesos, es decir, sin necesidad de que le den cambio, ¿de qué denominación son las 8 monedas?
¿Ya lo resolvieron? Bueno, si no lo han resuelto la respuesta está en lo que hemos visto, potencias de dos (1, 2, 4, 8, 16, 32 y 64 pesos). Y la justificación a esta respuesta está en lo que vimos sobre el sistema binario y sumas de potencias de dos.

En principio no parece tan práctico tener una moneda de 32 pesos. Pero veamos lo que pasa en nuestro sistema de monedas. Si nos dieran a escoger ocho monedas, no podríamos pagar muchas cantidades. Con 5 monedas y 3 billetes sólamente podríamos pagar desde  1 pesos hasta 110 pesos. Pueden ver la siguiente tabla, para la descripción detallada de las 8 monedas. Y les dejo de ejercicio verificar que podemos pagar de 1 hasta 110.


Cantidad 1 2 1 1 2 1
Denomincación $1 $2 $5 $10 $20 $50

 

Entonces, ciertamente nuestro sistema de denominaciones es más ineficiente que en aquel remoto país del problema. Pues en aquél, con las misma cantidad de ocho monedas, se pueden pagar más del doble de cantidades.

Pero la razón por la cuál no se usa el sistema de denominaciones de aquél lejano país, es que sería mucho más trabajoso saber con cuántas y con cuáles monedas pagar. Por ejemplo, intente pagar 90 pesos con las siguientes monedas:



Para que este conjunto de monedas fuera más natural y fácil de usar, es necesario que todos usaramos binario en lugar del decimal; escribieramos, nombráramos, operarámos los números en binarios de forma cotidiana. ¿Se imaginan? Hasta las tablas de multiplicar serían más fáciles: uno por cero, cero; uno por uno, uno; ¡y se acabó!.

Un truco de magia

Un mago le pide a la audiencia, que piensen un número del 1 al 15. Después le muestra las siguientes cuatro cartas y pregunta, “¿En cuál o cuáles cartas aparece el número que pensó?”


A
1       3        5        7 9      11      13     15
B
2       3       6        7
10     11     14     15
C
4       5       6       7 12     13     14     15
D
8      9      10      11 12    13     14      15
Una vez indicadas las cartas, el mago inmediatamente dice cuál es el número. 

Ell truco del mago es sumar los primeros números de cada carta elegida por la persona. Por ejemplo, si la persona pensó “13”, entonces indica al mago que  su número está en las cartas A, C y D. Entonces, el mago suma 1 + 4 +8 =13 para saber cuál es el número.

Les dejo como ejercicio averiguar la relación de este truco, con el sistema de numeración binario y las potencias de dos.

Una observación más avanzada

Pues ya vimos que todo número se escribe como sumas de potencias de 2, pero qué pasará si en lugar de 2 ponemos -2. ¿Todo número se escribirá como sumas de potencias de -2?

La respuesta es que sí e inesperadamente esto incluye a los negativos. Todo número entero (incluyendo negativos) se podrá escribir de forma única como suma de potencias de -2.

La prueba formalmente tendría que hacerse con el uso de inducción matemática, pero para no espantar a los novatos, sólo escribo los primeros casos, los expertos podrán hacer la formalización si quieren.
  • Paso -1: El número 0 no se podrá construir como sumas de potencias de -2. Así que para poder construir todos, será necesario incluirlo a la lista de generadores, es decir, vamos a generar todos los enteros usando el 0, 1, -2, 4, -8, 16, -32, …
  • Paso 0: La potencia cero no da (2)0=1, por lo que podemos generar ahora sólamente el 0 y el 1.
  • Paso 1: La potencia uno, es el -2. Por lo que podemos generar, el 1, -2 y el 1+(-2)=-1, Es decir, podemos obtener desde el -2 hasta al 1 como suma de 1 y -2 (y el cero).
  • Paso 2: (-2)^2 =4. Entonces, el paso anterior podemos obtener del -2 al 1 (cuatro números), por si a esos números les sumamos 4, obtendremos cuatro números más: 2, 3, 4 y 5. Entonces, ahora podemos construir desde el -2 hasta el 5, en total 8 números.
  • Paso 3. (-2)^3 = -8. Al sumarle -8 a los ocho números del -2 al 5, obtendrémos otros nuevos 8 números; del -10 hasta el -3. En total, ahora podemos construir 16 números, del -10 hasta el 5.
Y así sucesivamente. podremos construir un intervalo de números enteros que tiene tamaño 2n. Y el número que vamos a sumar será (2)n, así que duplicaremos la cantidad de números que se pueden generar como potencias de -2. Y dependiendo del signo de (2)n el intervalo crece hacia los negativos o hacia los positivos.

Fuente:

Mate Tam
google.com, pub-7451761037085740, DIRECT, f08c47fec0942fa0