Nada

Noviembre 18, 2009

Me han regalado El libro de la nada, de John Barrow.

Lo primero que sentí al ver el título fue el temor (la esperanza) de que al abrirlo sólo encontraría páginas en blanco.

Pero no; encontré un libro lleno de capítulos, que promete una interesante lectura. Ya comentaré.


Incrementalidad

Noviembre 9, 2009

La muerte no es tan mala, si sucede en forma incremental. Lo mismo que la inmortalidad.

Esto lo dice un personaje de la novela Diáspora (de Greg Egan) que es una forma de vida basada en software. Se refiere a su forma de auto-modificarse cada tanto para evitar el hastío. Él se considera su propio tátara tátara nieto, habiéndose modificado varias veces hasta casi perder su personalidad original.

Yo no creo que haga falta semejante auto-modificación para no aburrirse; de hecho encuentro poco justificada la opinión de mucha gente que dice que la inmortalidad sería aburrida o terrible… Yo aprovecharía de muchas maneras semejante condición.

¿Qué harían ustedes, si fueran inmortales, para evitar aburrirse?


Bucle leído

Septiembre 19, 2009

El otro día terminé de leer “Yo soy un bucle extraño”, y me ha resultado bastante grato. Lo recomiendo a cualquiera que quiera profundizar en los problemas de la mente y la consciencia desde un enfoque totalmente racional y desprovisto de misticismos ofuscatorios.

Sólo empaña un poco el disfrute alguna que otra repetición de conceptos, y la tendencia del autor a usar anécdotas demasiado personales para ilustrar ideas generales; pero para alguien que no haya leído nada del autor anteriormente no molestará demasiado.


Récords

Septiembre 12, 2009

Hace minutos, vi una entrevista a un certificador de récords Guinness. Relataba cuáles eran sus récords favoritos, los más locos, los más peligrosos, etc.

Me quedé con la duda de si él mismo no ostentaría un récord: el de mayor cantidad de récords certificados.

Si fuera así, ¿debería ser incluido ese récord en la cuenta?


Bucle extraño

Septiembre 7, 2009

Hoy he recibido mi ejemplar de Yo soy un extraño bucle, de Douglas R. Hofstadter.

Esto me alegra por partida doble: por un lado anticipo una lectura interesante y enriquecedora; por otro, tengo la agradable sensación de que me lo he ganado: Luis E. Juan, quien ha traducido al castellano el libro, tuvo la amabilidad de enviarme una copia a modo de agradecimiento por mi pequeña colaboración, al “traducir” un pangrama auto-referente. Y para colmo ha procurado que apareciera mi nombre en las notas, lo cual superó totalmente mis expectativas.

Prometo sacarle el jugo al libro. Ya comentaré a medida que lo vaya leyendo.

¡Gracias Luis por tu generosidad!


Literal

Agosto 29, 2009

La palabra “literal” ya no puede ser usada literalmente, porque no escribimos sobre piedra.


Tamaños

Agosto 21, 2009

Me encanta cómo la luna parece parecer más grande sobre el horizonte que arriba, en el cielo.

En realidad su tamaño aparente es el mismo (si se mide en grados en la esfera celeste), pero la mente le asigna un tamaño mayor cuando la compara con los objetos cercanos al horizonte.


Un aporte algorítmico al “debate” cero a la cero

Agosto 7, 2009

Es curioso (y en cierto modo injusto) el hecho de que la igualdad 0^0 = 1 sea tan discutida en ciertos ámbitos.

No niego que este resultado pueda ser poco intuitivo al principio, sobre todo si primero nos enseñan que 0^n = 0 para n > 0, pero una vez que se demuestra, resulta de lo más natural en innumerables contextos.

Se pueden dar demostraciones de todo tipo (por ejemplo, la del Topo Lógico, basada en la teoría de conjuntos, es de las más lindas que vi); pero como yo soy menos riguroso y me gustan las computadoras, se me ocurrió darle al asunto un enfoque más orientado hacia la “elegancia algorítmica” (sea eso lo que sea).

Idea básica: aplicación iterada

Supongamos que necesitamos una función que tome dos números naturales y calcule su producto, usando la definición de producto como acumulación de sumas. Una manera iterativa de implementarla será algo así (en Python):

def producto(x, y):
    # comenzamos con el elemento neutro de la suma
    t = 0
    # ahora aplicamos y veces el sumando x
    for i in range(y):
        t += x
    return t

Y una manera recursiva, en Haskell por ejemplo:

producto x 0 = 0
producto x y = x + (producto x (y-1))

Aunque quizá no sean tremendamente eficientes, ambas funcionan perfectamente en todos los casos, e ilustran la definición del producto como aplicación repetida de la suma.

Extendiendo la idea

Supongamos que ahora nos piden que definamos la potencia de dos números naturales, usando la misma idea de acumulación, aunque ahora de productos en lugar de sumas.
Un programador que se precie usará el mismo patrón que antes, pero cambiando la operación aplicada y el elemento neutro.

La versión iterativa quedaría entonces así:

def potencia(x, y):
    # comenzamos con el elemento neutro de la multiplicacion
    t = 1
    # ahora aplicamos y veces el factor x
    for i in range(y):
        t *= x
    return t

Y la versión recursiva, así:

potencia x 0 = 1
potencia x y = x * (potencia x (y-1))

Y ambas dan la respuesta correcta para 0^0.

¿No es bello? Además de haber ahorrado trabajo aplicando un patrón ya implementado, se logra la capacidad para definir funciones cada vez más “avanzadas”, cada una extendiendo un nivel la función anterior. Pero ese es tema para otro post…


Sin ánimo

Agosto 6, 2009

“Sinónimo” no tiene sinónimos. Qué injusticia.


Día de la Recursión

Agosto 1, 2009

He aquí una grata noticia: en Juegos de Ingenio se está llevando a cabo una encuesta para decidir qué día del año debe ser el Día de la Recursión (hasta ahora, una vacío imperdonable en el calendario acertijero mundial).

La iniciativa está orientada a organizar una muestra colectiva que refleje las variadas formas en que se manifiesta la recursión en el mundo lúdico y artístico.

En una primera etapa, toda la comunidad lúdica está invitada a proponer la fecha más adecuada. Para impulsar un candidato sólo hay que completar el siguiente formulario y enviarlo a esta direccion.

Fecha propuesta para el Día de la Recursión (día/mes): ___/___
Motivo de su elección: ________________