miércoles, 2 de diciembre de 2009

Recursividad : De como Martin aprende la recursividad con un dragón

Hace muchos años, antes que se inventaran las computadoras, había alquimistas que estaban interesados en las matemáticas. Como carecían de computadoras usaban dragones para que trabajaran para ellos. Pero los dragones eran perezoso y tenían mal genio, no siendo raro que incendiaran a alguien antes de hacer el mas minimo trabajo para el. Esta es la historia de como Martin el aprendiz de alquimista, descubrió la recursion venciendo con su inteligencia a un dragón perezoso.

Un dia el alquimista para el que trabajaba Martin le dio una lista de números y le dijo que bajara a las mazmorras y le preguntara al dragón si alguno de ellos era un numero primo. Martin nunca habia hablado antes con el dragón. Tomo una vela y bajó, encontrando al final de una oscura galería a un dragón viejo y de aspecto nada amistoso. Timidamente se acerco. El no quería ser reducido a cenizas por una llamarada del dragón.

-Que quieres tu?- gruño el dragon.
-Tengo una lista de numeros- dijo Martin -y deseo saber si alguno de ellos es primo. Esta es la lista...
Y Martin escribio la lista de numeros con una rama sobre el mugriento suelo.
[2197, 2401, 6859, 4913]

El dragon estaba de mal humor esta mañana. De hecho, siendo un dragon, siempre estaba de mal humor.

-Lo siento chico- dijo el dragon -solo te puedo decir si el primer numero de la lista es primo. Es lo mas que puedo hacer. Cualquier otra cosa seria demasiado complicada y probablemente no merezca la pena que me esfuerce.
-Pero necesito saber si algún numero de la lista es primo, no solo el primer numero -explico Martin.
-No insistas chico. Solamente examinare el primer numero de la lista. Examinare todas las listas que desees si me muestras lista por lista.

Martin se detuvo un a pensar un rato. Tenia que haber algún método de sobrellevar el mal humor del dragon.
-Bueno, entonces que me dices de esta lista?- preguntó señalando lo que habia escrito en el suelo.
[2197, 2401, 6859, 4913]
-El primer numero de la lista no es primo - dijo el dragón

Entonces Martin tuvo una idea, borró la primer parte de la lista y dibujó un nuevo corchete dejando
[2401, 6859, 4913]
-Que me dices de esta-dijo Martin.
-El primer elemento de esa lista no es primo-replico el dragon
Martin borró algo mas de la lista.
[6859, 4913]
-Y de esta?-volvió a preguntar.
-El primer numero de esta lista tampoco es primo- dijo el dragón.

Parecía algo aburrido pero al menos cooperaba.
-Y de esta otra?- insistió Martín.
[4913]
-No es primo-
-Y de esta?-
[]
-Esta lista esta vacía-gruño el dragón- no se puede tener ningún numero primo porque no hay nada en la lista.
-Bien -dijo Martín- ya que ningún numero de la lista que me dio el alquimista es primo, todos son "no primos".
-Yo NUNCA dije eso- protesto el dragón- Solo te dije lo que era el primer numero de cada una de las listas que me mostraste.
-Es cierto dragón. Puedo escribir las listas que has examinado?
-Si lo deseas...

Martín escribió en el suelo
[2197, 2401, 6859, 4913]
[2401, 6859, 4913]
[6859, 4913]
[4913]
[]
-Ahora toma el primer numero de cada lista -dijo Martín- Que obtienes?
-2197, 2401, 6859, 4913 y nada en la ultima- dijo el dragon.
-No lo ves?-dijo Martín- Diciéndome si el primer numero de cada una de las listas no era primo, me has dicho que ninguno de los números de mi lista original es primo.
-Es un truco-dijo el dragón- Parece que has descubierto lo que se llama recursion. Pero no me preguntes lo que significa. Tienes que pensar tu mismo en ello.

Y dicho esto el dragón cerro los ojos para dormir y rehuso decir nada mas.
Compartir:

0 comentarios:

Publicar un comentario