El Día Pi en el Logo de Google

Matemática 4 Comments »

Hoy, 14 de marzo, fecha en la que nació Albert Einstein, es también reconocido como el día del número pi, ya que en la forma americana de escribirlo, 3/14, es la forma en la que se escribe el número π con dos decimales.

La fecha debe ser importante pues Google cambió su logo en las páginas iniciales de todos sus buscadores regionales, inclusive, claro, Argentina. Para los que solo conocen al número por su nombre y su fama pero no tanto por su uso, en el logo de Google se lo puede ver en las siguientes utilidades.

Primero, en la G, se puede verlo en la función del área de la circunferencia: π r2. En las oo, podemos ver lo que es la función seno o coseno, donde el período de las mismas es naturalmente.

La segunda g se divide en dos partes. La parte superior nos da una aproximación de π definiéndolo como mayor a 223/71 y menor a 22/7, dejándose ver figuras regulares que era la forma en la que antiguamente se calculaban aproximaciones del número. La parte de abajo de la g define la función del volumen ocupado por una esfera: 4/3π r3. La l del logo hace lo mismo, muestra como se calcula el volumen de un cilindro: π r2 h (siendo h la altura del mismo). Por último, la e está envuelta en una circunferencia y vemos la fórmula para calcular el perímetro de la misma: 2π r.

Obviamente, Google ha puesto en su logo los usos más comunes del número para el reconocimiento de la mayoría de la gente en él.

Nicolas Bourbaki: un matemático brillante… que nunca existió

Matemática 10 Comments »

Nicolas Bourbaki nació en el Café Capoulade, en París, Francia, en 1934, aunque su fecha exacta sigue siendo un misterio. A lo largo de su extraña vida, publicó nueve libros que cambiaron las matemáticas aplicándole mucho más rigor.

Sus nueve libros publicados son Teoría de conjuntos, Álgebra, Topología general, Funciones de una variable real, Espacios vectoriales topológicos, Integración, Álgebra conmutativa, Variedades diferenciables y analíticas, Grupos y álgebras de Lie y Teorías espectrales. Estos libros reformulaban los conocimientos hasta el momento -hasta la decáda del 40, para poner una fecha media-, proponiendo un tratado de las matemáticas más riguroso y exigente. De esta forma, Nicolas generalizó conceptos y términos que siguen usándose hoy en día.

De hecho, estos nuevos conceptos no son para nada avanzados. Los conceptos de inyecta, subyectiva y biyectiva, fueron acarreados por él. Inclusive, el símbolo para un conjunto vacío, el cero tachado: .

O algo que vemos hasta en la escuela primaria: N, Z, Q, R y C. Las letras para designar a los naturales, enteros, racionales, reales y complejos fueron también inventadas por Bourbaki.

Sin embargo, a pesar de todos sus aportes a las matemáticas, a Nicolas Bourbaki nunca lo dejaron ser miembro de ninguna asociación de matemáticos.

Porque Nicolas Bourbaki nunca existió.
Read the rest of this entry »

Como un videojuego mejoró la forma de calcular raíces inversas

Creatividad, Matemática 2 Comments »

Mientras jugamos a algún videojuego, posiblemente no notemos todos los detalles realizados, salvo que alguno no encaje y esté mal hecho. Una reflexión de la luz bien hecha nos será algo natural, pero un detalle que refleje en un sentido irreal será rápidamente advertido.

Los desarrolladores del Quake III se encontraron con un problema al tratar de hacer uno de estos detalles: el de la iluminación y la reflexión de la misma. Al ser un juego en tres dimensiones, debían calcular la norma (longitud) del vector que incidía. Así como en dos dimensiones se calcula con el Teorema de Pitágoras, en tres dimensiones es igual pero con tres vectores:

La suma de los cuadrados de los tres vectores (uno que correspondía a cada eje) no era un problema de calcular. La lentitud venía cuando había que calcular la raíz cuadrada, ya que eran apróximadamente millones que calcular en apenas un segundo -menos tiempo, de hecho-. Una tarea lenta para los mediados de los 90′, cuando fue desarrollado.

La creación de una función para calcular la inversa de la raíz cuadrada de forma rápida fue, por un lado, vital para la creación del juego. Por otro lado, fue totalmente novedosa por el modo en el que se hacía el cálculo.

float InvSqrt (float x)
{
    float xhalf = 0.5f*x;
    int i = *(int*)&x;
    i = 0x5f3759df - (i>>1);
    x = *(float*)&i;
    return x*(1.5f - xhalf*x*x);
}

Esa es la función que se creó en 1990 para el Quake III que luego se dio a conocer en OpenArena (la versión opensource) y que resulta hasta 4 veces más rápida que 1/sqrt(x).

La función trabaja con la forma en la que se almacenan los números en las memorias de las computadoras, por lo que entenderla de manera rápida es imposible sin los conocimientos previos (así como explicarla). (Para los interesados, pueden leer el paper de Chris Lomont en donde explica matemáticamente lo que hace la función.)

Pero básicamente lo que hace la función es tomar el número deseado en notación científica, y pasar a negativo y dividir por la mitad al exponente (luego con el método de aproximación de Newton se consigue algo más cercano al valor real, pero no es lo que nos interesa).

Para conseguir eso, que el exponente se vuelva negativo y luego partirlo por la mitad, se necesitaba una multplicación (por -1) y luego una división (por 2). Lo cual era un trabajo pesado para la computadora en aquellos tiempos -debido a la cantidad de esas cuentas que se tenían que hacer-, por lo se necesitaba una forma más liviana. Y esto es lo que hace esta función, hace todo simplemente con sumas y restas.

Para pasarlo a negativo, usa un viejo truco: restarle a cero el número que queremos pasar a negativo. El problema era la pesada división por 2…

Y ahí es donde entra nuestro número mágico, 0x5f3759df. Una forma de dividir al exponente por dos es haciéndole un shift (aquí es donde habría que entender la forma en la se almacenan los números), que corre un lugar a todos los bits en la memoria de ese número. Esto provoca que el exponente se divida por dos… pero también el número de la base.

Por ejemplo, si tuviésemos 5.4^10, al shiftearlo, tendríamos 2.7^5, cuando en realidad quisiéramos 5.4^5.

0x5f3759df entra en juego y restando al número anterior corrige esa falla, dejando que solo la división afecte al exponente.

Con el tiempo, nuevos números mágicos fueron encontrados que actuaban mejor que 0x5f3759df, pero sin dudas el honor de haber sido el primero se lo lleva este último.

No importa si la explicación fue entendida o no. Lo importante es que programadores encontraron otras formas de hacer cálculos matemáticos, de hecho encontraron una forma para calcular la inversa de la raíz cuadrada con sumas y restas. Y eso es lo bello/importante/sorprendente de la matemática… día a día se siguen encontrando diferentes caminos para llegar a lo mismo, caminos que verifican que es una ciencia casi-perfecta… o perfecta.

Time to Radians: Midiendo el tiempo en ángulos (en radianes)

Labs, Matemática, Programación 2 Comments »

La gente normal -o la gente de otras ciencias, mejor dicho- puede que mida los ángulos en grados: 90º, 180º, 360º. Sin embargo, los matemáticamos creemos que la forma en la que se miden los grados es por radianes. La conversión entre radianes y grados es muy sencilla y es por regla de tres simple. π equivale a 180º, por lo que, por ejemplo, 90º sería π/2. Entonces, la vuelta entera, es 2π.

Y así como a veces uno usa el sistema de las agujas reloj para señalar cosas por la calle y pasar desapercibido, Fepe empezó a decirme la hora en radianes cada vez que salía el tema. La idea de hacer algo que calcule automáticamente eso no tardó en llegar y acá está: Time to Radians.

Toma la hora de la PC del usuario con Javascript, y luego con PHP hace los cálculos para pasarla a radianes y luego dibujarla para que el API de Charts de Google la entienda.

No fue más que una curiosidad y un ejercicio para mí, el cual fue bastante divertido hacer. Ahora está ahí, subido, para todo el que quiera verlo.

Foto original del post en Flickr

Athena Kurukshetra 2010, la competencia matemática

Matemática, Programación 3 Comments »

Kurukshetra 2010 es la conferencia internacional de tecnología de la Universidad Anna, de Chenai, en la India.

La organización preparó un proyecto llamado Athena, el cual será una competencia para resolver problemas de índole matemáticos-lógicos a través de la programación (como el Project Euler, pero plasmado en una competencia).

Para participar solo hace falta registrarse gratuitamente en el sitio de la conferencia y luego ingresar con ese usuario al sistema de Athena.

Mañana 6 de enero, apartir de la 5PM de India, estará disponible la primera fase que será de práctica, en la que los participantes se podrán familiarizar con el sistema.

La competencia per sé será desde el 8 de enero hasta el 15 de enero.

Saber si un número es primo o no… con expresiones regulares

Matemática, Programación No Comments »

Saber si un número es primo -aquellos solo divisibles por sí mismos y por el número 1- es una tarea que en programación significa funciones recursivas. Algunas más optimizadas que otras, pero siempre terminamos en fijarnos si el número que queremos chequear es múltiplo de los números menores.

Hoy, navegando y leyendo, me encontré con algo que me sorprendió y me pareció muy curioso: como saber si un número es primo o no verificándolo con expresiones regulares.

En el 2000, en la conferencia de Perl Yet Another Perl Conference, en una charla se presentó una forma de verificar esto. Lo que hay que hacer es, primero, pasar el número que queremos verificar a una cadena de 1, donde la cantidad de 1 que aparecerán es el número que queremos verificar.

Es decir, si queremos verificar el número 7, tendremos que pasarlo a 1111111. Si queremos verificar el 15, será 111111111111111. Y luego, a esa cadena de 1, tenemos que ver si coincide con esta expresión regular:

/^1?$|^(11+?)\1+$/

Si no coincide, entonces el número es primo. Es algo muy sencillo de hacer en programación. En PHP se verifica con algo tan simple como

preg_match('/^1?$|^(11+?)\1+$/', str_repeat(1, $n))

Esta expresión se puede dividir en dos para entenderla mejor, con el signo |. La primera parte es solo para verificar si se le pasan los números 0 o 1, pues ambos no son primos pero sin esa excepción darían que sí lo son. La segunda parte es donde se produce la magia…

Lo que hace la expresión regular es primero si el número que le pasamos es de la forma 11 o alguna cadena múltiplo de esa: es decir, 11, 1111, etc. Es decir, que esté formada por onces. Si no, volverá atrás y le agregará un 1 al anterior y volverá a probar lo mismo. O sea, luego probará con 111 y cadenas con ciento onces: 111111, etc.

El siete, por ejemplo, no encaja en ninguna de estas formas. No se puede formar con el 11 ni con el 111, ni mucho menos con el 1111 (ya que luego habrá 8 unos). Si pudiese formarse con alguna cadena de unos, es porque es un múltiplo de un número anterior.

Es una forma muy original y rápida de calcular si un número es primo, sin la necesidad de crear una función que verifique matemáticamente esto. Sin embargo, en lenguajes como PHP, falla con números grandes. La razón es la incapacidad de guardar variables con muchas caractéres, lo que sucede al tratar de guardar la variable que almacena los unos de un número como, por ejemplo, un 1.000.000.

Imagen del post del comic de XKCD

Poesía Prima, de Flor Codagnone

Creatividad, Matemática No Comments »

Hace tiempo, Flor me propuso hacer un juego entre los dos. Algo así como darle una consigna matemática – o mejor dicho, una consigna en la que los números sean importantes, para que ella pueda aplicar a sus escritos.

El tiempo pasó hasta que antes de ayer, cuando volvía de la facultad a la noche, se me ocurrió una consigna: escribir una poesía que, en los versos primos, esconda otra poesía. El e-mail con la consigna salió ayer y ese mismo día Flor me respondió con dos producciones muy buenas que cumplían lo que pedía: dos poesías que en los versos 2,3,5,7,11,13,17 y etc., contenían otra poesía.

Hoy publicó Flor en su blog el primero de esos poemas -un poco autoreferencial-, que los invito a leer acá. Quizás publique el segundo, o quizás publique más de esta serie (no lo sé).

Lo que es seguro es que ya se me ocurrió otro desafío para ella. Y en cualquier momento se lo digo, para ponerla a trabajar en esto que es combinar la escritura con las matemáticas.

Foto original del post en Flickr

Funciones encontradas, de Nikki Graziano

Creatividad, Matemática No Comments »

Nikki Graziano es una fotógrafa y matemática (excelente combinación) que estudia en el Instituto Rochester de Tecnología (en New York). Nikki encontró una forma de juntar, de fusionar, sus dos pasiones y ha realizado Funciones Encontradas (Found Functions -en inglés suena mejor-), un proyecto creativo e interesante.

Lo que hace en Found Functions es definir funciones acotadas que se adapten a las formas que aparecen en las fotografías que ha tomado.

Funciones Encontradas, de Nikki Graziano

Por ahora la galería solo cuenta con cinco imágenes, pero esperemos que pronto Nikki encuentre más funciones en la naturaleza o donde sea que tome sus fotos.

En el shop que Nikki tiene en Etsy se pueden comprar impresiones de estas fotografías de un tamaño de 22×28 centímetros.

Foto original del post en Flickr

La longitud de Pi

Matemática 2 Comments »

Todos sabemos que la forma rápida de nombrar a Pi es 3,14. Otros -no tantos-, recordarán que 3,1416 es Pi un poco más allá, y otros (menos), en realidad sabrán que el 1416 es una farsa, un redondeo del 3,141592. Sin embargo, ninguno de estos es la longitud (ni el principio del desarrollo decimal) de Pi de la que voy a hablar en este post.

En agosto de este año, se descubrieron más dígitos del desarrollo decimal de Pi, llegándose a tener 2.500.000.000.000 (2,5 billones) de dígitos.

Para escribir todo esto que conocemos de Pi, necesitaríamos 724.637.681 hojas default de Word (A4, con 2.54 y 3.17 cms de márgenes y Times New Roman 12pts).

A su vez, si quisiésemos escribirlo en una larga tira de papel, donde cada dígito tomara un centímetro, tendríamos que usar (aparte de muchísimas lapiceras), un rollo de 25 mil millones de metros… algo así como 25 millones de kilómetros.

Si ese papel lo hiciésemos dar una vuelta al Ecuador… nos sobraría para darle la vuelta unas 624 veces más: Pi podría dar 625 vueltas al Planeta Tierra.

Lo que es casi más impresionante es que, considerando que la Tierra está a 385.000 km (apróximadamente) de la Luna, también habría varios ida y vuelta para este Pi escrito con dígitos de un centímetro.

De todas formas, cabe recordar que la importancia de Pi en las matemáticas no se la da su longitud (que de hecho, acá hablo de su longitud conocida, pues realmente su longitud es infinita). Para saber más sobre Pi, el artículo de Wikipedia es bastante esclarecedor.

Foto original del post en Flickr

Una soga que da la vuelta al Planeta Tierra

Matemática 3 Comments »

Hace unos meses, en el cumpleaños de un amigo, otro amigo me habló de una curiosidad que implicaba matemáticas.

Me propuso la idea de una soga que daba la vuelta al planeta Tierra, preferentemente por el Ecuador (y para no tener problemas, al nivel del mar). Esta soga deberá tener la longitud del diámetro de la Tierra en el Ecuador. Sin embargo la pregunta, la propuesta era: ¿Cuánto se tendría que alargar la soga si se levantara a un metro del nivel del mar? Es decir, imaginemos que en cada punto, alguien la sostiene a un metro del piso. ¿Cuántos metros más de soga necesitaríamos para que siga dándole la vuelta al planeta?

Obviamente, las respuestas que suele dar rápidamente la intuición suelen ser erróneas. Sin embargo, calcular esto es muy sencillo.

Tomando los datos de Wikipedia, el radio ecuatorial es de 6378 km. Calculando la longitud de la circunferencia con 2π*R, sabemos que nuestra soga deberá medir: 40074,1559 km.

Ahora, la pregunta era, cuánto deberá medir la soga si quisiéramos levantarla un metro sobre cada punto del Ecuador. Levantarla un metro sobre el Ecuador significaría agregarle un metro a nuestro radio, lo que haría que nuestro nuevo radio quede igual a 6378,001 km.

Calculando la longitud de la nueva soga, sabemos que deberá medir 40074,1622 km.

La diferencia entre estas dos sogas será solamente de 0,0063 km, o mejor dicho: 6 metros, 30 centímetros.

Y esto se debe porque lo que aumentó del radio fue ínfimo comparado al radio original (de hecho, solamente aumentó un 1,5×10^-5%). Sin embargo, para la mayoría de la gente esto es antiintuitivo y ni siquiera puede imaginar que solo alargando la soga seis metros se pueda elevar un metro por sobre todo el planeta.

Foto original del post en Flickr


Design by j david macor.com.Original WP Theme & Icons by N.Design Studio
RSS Comentarios RSS Acceder