Lo he hecho.
Me he ido DE ESTA H-A-B-I-T-A-C-I-Ó-N
Nº de cuenta: La Caixa 2100 1630 14 0200066256
fina, elegante, eterna,
y qué condena para mí ser curva;
de trazos difusos, casi invisible.
Te busco, y si no te encuentro desaparezco,
y si te invento me pierdo en ti y en tu magia,
que tú tienes largo rato de eso,
y si te pido un beso,
me das teoremas (que casi ni entiendo).
Porque tú tan de dos en dos: veinte, veintidós, veinticuatro,
y yo tan de uno en uno hacia delante, dos para los lados
y para atrás cuatro,
en forzada lentitud hacia las entrañas,
a converger en algún punto muy cerca de la nada,
o a olvidarme en los complejos, mis complejos;
que dicen que realmente somos impares y pares
y cada cual vamos a un lugar distinto,
que no te lograré tocar,
ni aunque pase un infinito, o dos.
Y si eso pasa
me partiré por cero sin pensarlo,
violando y destruyendo el mundo que nos da forma,
el único mundo en el que creo,
así, si te vas al infinito,
yo,
te voy a esperar en el cero.
Todo el mundo sabe que aparte de ser friki, soy muy friki. Todo el mundo sabe, y aún así me sigue queriendo, al menos no odiando, o al menos no intentando asesinarme, que una de mis debilidades es Pokémon. Hasta que gracias a Smogon y a PxP me adentré en el juego competitivo, siempre rechacé un poco la idea de combatir, me gustaba el juego, ganarle infinitas veces a la máquina, criar y entrenar sin más finalidad que entretenerme. Recordando aquellos tiempos, he decidido crearme un equipo para BW que como comprobarán algunos entendidos en poco tiempo, es bastante serio y competitivo.
Cambio un poco la tónica de este blog para compartir con vosotros los recuerdos de 4 horas de programación en C++ que han sido verdaderamente majestuosas.
La historia comienza con un profesor de la universidad buscando voluntarios entre uno de los subgrupos de mi curso de matemáticas. Dos de mis compañeros (y grandes amigos) aquí decidieron apuntarse, y Alberto, uno de ellos, al darse cuenta que habían sido los únicos, me facilitó la información acerca de esto. Tras un par de "con dos cojones" y un "la vida es demasiado corta como para perderse esto" estaba apuntado a este curioso experimento.
El objetivo era partir de una base de programación en C++ y llegar a ser capaces de implementar un programa que simulase el cerebro de un robot explorador. Y todo esto en cuatro horas, con una tarjeta ARDUINO y unas piezas robóticas LEGO.
En la primera sesión de dos horas aprendimos a manejar motor, sensor de contacto, de ultrasonidos, de luz, a saber manejarnos con los puertos de la tarjeta y a articular instrucciones en el ordenador para poder controlarla. Lo que no sabe el profesor que nos ayudó es que también aprendimos a hacer un putiferio con las luces LED, aprendimos que no se puede crear luz negra (sombra, vamos) y que si algo no te funciona, simplemente apágalo y vuélvelo a encender.
Antonio Luis aprendió también que las líneas estilo "else { if {" no son legibles (aunque se muestra reacio a ponerlo en práctica).
En la segunda sesión utilizamos todo lo aprendido en la primera y trabajamos con el robot completo.
![]() |
| Alberto empezó con la parte más divertida. |
Hay muchos experimentos y por tanto muchos vídeos, os dejo con uno de los mejores, cuando tratábamos de volver loco al robot encima de la mesa.
Todos los vídeos están disponibles en HD
Durante estas dos últimas horas se escucharon algunas frases dignas de recordar, destaco algunas (de las que me acuerdo, vaya).
- "No hemos tocado nada, solo lo hemos conectado y ha empezado a darle vueltas la cabeza como la niña del exorcista".
- "Eh, eh, el sangrado de código, que luego Javier nos regaña".
- "¡Pero pon el sostenido! -¡Es que se ponen dos! -¡Pues pon los dos y borra uno! -¡Es que se borran los dos!" Entonces nos coge el profesor el ordenador, cierra el programa, lo vuelve a abrir, y se arregla por arte de magia.
- "Eh, ¡que nos atropella los bollos!".
- "Este bicho necesita un sensor de precipicios".
- "¿Por qué a mí no me detecta el robot? - Porque no tienes alma".
- "Antes queríamos que saliese amarillo y ha salido azul, ahora que esperamos que salga violeta va a salir amarillo. - Es el mejor argumento que he oído en mi vida; esto va a funcionar porque yo quiero que funcione". La última fue la respuesta del profesor.
-"Podría pasarme horas viendo cómo explora el cacharro este".
-"El robot tiene esclerosis". Frase causada por no ajustar bien el ángulo de giro del sensor de ultrasonidos y desplazarse con la cabeza mal puesta.
-"Deberíamos ponerle un botón de autodestrucción, o ponerle la velocidad al máximo, a ver si explota".
-"Yo inicializo los dos motores estos, el tercero seguro que se inicializa por inercia".
-"Suponiendo que esta sea la izquierda..."
Como sé que anheláis ver cómo quedó, disfrutad del último vídeo.
En pantalla completa es muuuuuuuucho mejor.
Porque C++ sirve para algo más que para hacer pinos de asteriscos, leñe.
De todas las cosas que hay en este mundo, creo,
y digo creo porque afirmar es una cosa muy fea,
que la más complicada es escribir unos versos,
que nos maltratan en cada punto, en cada línea,
siendo derrotados hasta tres veces por ellos.
Cuando coges el folio blanco ya has perdido una vez.
Lo tomas, lo miras, te enfrentas a él.
Y ahora dime tú cómo demonios te meto aquí,
cómo encerrarte entre cuatro márgenes, si no se puede,
si a la primera palabra del texto,
ya está tu nombre por las paredes,
y mis dedos temblando tratando de acorralarte.
En el entremés de darle forma, una segunda derrota.
¿cómo va a saber alguien más que tú,
que por una línea que le escribes,
son cuatro las que le borras?
O aceptar que la idea que te sentó en la mesa,
y te hizo desenvainar tu mejor pluma
para lidiar con este poema,
ahora se resiste a terminar el desastre,
sin entender aún cómo después de desatarte,
tiene la cara de ser tan estrecha.
Y para qué hablar de cuando te encuentras con el punto y final.
Cuando lloras, cuando tienes que cerrar
otra herida que has abierto en tu piel para
sacar estos versos que parecen de magia
y que siempre gotean, recordándote en cada página,
que no has escrito lo que quisieras,
que tras tanta sangre, lucha y tregua,
has acabado teniendo que morderte la lengua,
y dejar entonces de escribir, cuando corazón, dedos y alma,
te piden que sigas con tanta fuerza,
quedando frustrado por tu escasa voluntad,
quedando insatisfecho con la verdad callada.
Pero justamente eso nos hace guardar algo de ganas
para volver a pelear y perder contra el verso y el drama,
pues algún día despertaremos y habremos ganado a la vida,
pero hasta entonces, más nos vale tener poesía.
Por querer ser matemático
puse mi colchón a la asíntota de tus tobillos,
para llegar al infinito y aún dormir contigo,
para poder tenerte cerca, tan cerca como quiera.
Por querer ser matemático
vivo perdido en el baile de tus tangentes,
buscando en la 'x' la caricia de la tarde del jueves,
siguiendo la 'y' hasta donde la vida nos deja.
Por querer ser matemático, que no es poco,
la dejo pasar entre los vaivenes de tus cosenos (¡y de tus senos!),
mientras trato de unir innumerables puntos en tus relieves
para guiarme con ellos al interior de tus sueños.
Y es que por querer ser matemático,
he viajado a los límites de tu cuerpo sin usar para ello el tacto;
desde la exponencial de tu sonrisa,
hasta el logaritmo de tus peinados.
Que por querer lo imposible de querer ser matemático
tengo el alma vacía de números que a duras penas
pueden hacerte nada:
un diez, un quince, un cuatro,
y un mil y un besos que te daría,
si no quisiera ser matemático.
Y pongo nuevo entre comillas porque hace ya que dibujo. Seguramente no lo sabías, total, hay muchas cosas que aún no se saben de mí...
Es una larga historia, seguramente tan larga como la que hizo que más de dos años después volviese a coger un lápiz y me entretuviese haciendo unos bocetos de rostros (una cosa realmente simple).
Os dejo los resultados.
Juan es un hombre medianamente alto. Mochila a cuestas,
carpeta amplia en mano, camina bajo los olmos y los cerezos del camino que
enlaza su apartamento y su facultad de bellas artes. A su paso quisiera dibujar
hasta el canto de los pajarillos, cosa que no sería del todo imposible, pues de
él se dice que tiene un don para pintar.
![]() | ||
| Consecuencias reales de la división por cero. |
Como ya comenté en una ocasión anterior, las matemáticas necesitan una reforma, reforma que llegará cuando asuma el control del mundo. Uno de los postulados, el cual voy a tratar con detenimiento, tratará de eliminar el racismo existente contra los ceros en los denominadores, tan característico de esta matemática incompleta y discriminatoria.
Aviso - Todo lo que viene a continuación tiene una finalidad meramente humorística y no debe ser tomado como una teoría matemática. El uso indebido del mismo puede acarrear serias consecuencias, desde sacar un cero en un examen hasta la destrucción del universo, el inverso, el infraverso, el negativerso y el verso octosílabo.
1. El conjunto errítico.
Definamos el conjunto errítico, ϡ (se lee "e rara al revés") = { x/0 : x є R }. Un concepto chocante a priori, pero que no ha de alarmarnos aún.
-Suma: Ɉ, Ɉ' є ϡ, Ɉ = a/0, Ɉ' = b/0 => Ɉ + Ɉ' = (a+b)/0. Asociativa, conmutativa, con existencia de simétrico y con elemento neutro, 0/0.
-Producto: Ɉ, Ɉ' є ϡ, Ɉ = a/0, Ɉ' = b/0 => ɈɈ' = (ab)/0. Asociativo, conmutativo, distributivo respecto a la suma y con existencia de neutro, 1/0, al que vamos a denominar Math Error.
● Así pues, definimos dos operaciones externas.
-Suma con reales: yєR, Ɉ є ϡ, Ɉ = a/0, y+Ɉ = y + a/0 que, multiplicando y dividiendo por cero => 0/0 +a/0 = a/0. Acabamos de descubrir una consecuencia importante de la propiedad absorbitiva, todo número real es neutro para la suma con un elemento del conjunto errítico, de modo que todo número real se puede expresar de la forma 0/0, algo perfectamente lógico, pues una indeterminación así puede originar cualquier cosa. Sería lógico señalar que cualquier número real es insignificante ante cualquier elemento del conjunto.
-Producto por reales: yєR, Ɉ є ϡ, Ɉ = a/0, yɈ = y*a/0 = (ya)/0 ('ya', sí, ya vale de cargarse las matemáticas).
2. Teorema fundamental de la división por cero, El teoremón de Cruz.
Sea Ɉ є ϡ, con Ɉ ≠ 0/0, entonces Ɉ = Math Error.
Demostración: Lo dice la calculadora.
Ejemplos: 2/0 = 2*1/0 = 2*Math Error = Math Error. De aquí podemos sacar el siguiente corolario conocido como la propiedad absorbitiva-productiva-real de Math Error.
Sea x є R*, => x * Math Error = Math Error.
Sin embargo, aquí hay algo que nos escama. Hemos visto que todo número real 'cabe' dentro de 0/0, a pesar de ello, la calculadora nos dice que 0/0 = Math Error. ¿Podemos dejar esos casos en el aire? Por supuesto que no. Para ello debemos asimilar un nuevo concepto.
3. Falsa absorbitividad de ϡ.
Debemos tener cuidado con los casos tratados en este punto, pues una mente poco ágil (como la de una calculadora) podría decir que el resultado de toda operación con un cero denominante es Math Error (usando el teoremón de Cruz). Vemos ahora algunos ejemplos para tratar estas molestas fisuras de la teoría de la división por cero.
● Inversión: Sea Ɉ є ϡ con Ɉ ≠ 0/0 y Ɉ de la forma a/0 => 1/Ɉ = 1/(a/0) = 0/a = 0. Los inversos de todos los números erríticos son cero. Puesto que todos ellos son Math Error, tenemos que
1/Math Error = 0.
Ya nunca nos podrán decir que f(x) = 1/x no se anula, ¡claro que lo hace! En Math Error.
●División: Primeramente debemos tener en cuenta que la división no es conmutativa. Tomamos nuevamente Ɉ є ϡ con Ɉ ≠ 0/0, Ɉ de la forma a/0. Entonces obtenemos lo siguiente:
-xєR, x:Ɉ = x : (a / 0) = (x/1):(a/0) = 0/a = 0. Si lo hacemos con la multiplicación por el inverso:
x * (0/a) = 0/a = 0, el mismo resultado.
-xєR, Ɉ:x = (a / 0) : (x/1) = a/0 = Ɉ. Haciéndolo con el inverso:
(a / 0) * (1/x) = ((1/x) * a)/0 que ya hemos visto que es igual a a/0 = Ɉ.
Coincidiendo con el resultado obtenido en la inversión. Todo cuadra.
Como esta, muchas otras operaciones disfrazan un real de Math Error: Logaritmos en base Math Error, Potencias de Math Error, Exponenciales Math Error. Os invito a descubrirlas todas.
4. Teorema de súpercomplitud de ϡ.
ϡ = R u {Math Error}.
Demostración:
Primera inclusión.
Es evidente
Segunda inclusión.
Es evidente
5. Anexo. Demostraciones por erriticación (o equivocación).
El conjunto errítico nos permite hacer demostraciones de una forma bastante singular:
Supongamos que queremos demostrar que 2 = 3 en el conjunto errítico. Fácil
2 = 3 => 2*0 = 3*0 => 0 = 0 que es una trivialidad, además, estos pasos son reversibles puesto que:
0 = 0 => 0+Math Error = 0+Math Error => Math Error = Math Error => 2/0 = 3/0 (pues x/0 con x distinto de 0 es igual a Math Error por el teoremón de Cruz) => 2/0 * 0 = 3/0 *0 => 2 = 3 (EN ϡ!!) Quedando así demostrado.
6. Gancho para la siguiente entrada.
Como hemos visto antes, la función 1/x se anula en Math Error... pero ese Math Error no aparece en la gráfica de la función. Intuitivamente decimos que "se anularía en el infinito". Conservemos esa idea. ¿Qué sucede si tomamos límites hacia 1/0 = Math Error? Para esto nos basta con tomar un denominador que tienda a cero, pues el numerador poco nos importa gracias al teoremón de Cruz, viendo que una aproximación a Math Error puede ser +∞ y otra -∞.¿Qué sucede? ¿Es acaso Math Error infinito tanto positivo como negativo? ¿Es capaz como concepto de establecer los límites de la comprensión humana de los números? ¿Es por tanto, el mayorante y el minorante de los reales?
Todo esto y mucho más en La división por cero (II): Sucesiones de números erríticos. Coming soon.
7. (FAQ) Frecuently Asked Questions. (Si tenéis una, dejadla en los comentarios)
-"¿Por qué no llamarlo conjunto erróneo? Además de ofender a las matemáticas ofendes a la lengua."
-Se prestaría a confusión llamarlo conjunto erróneo, parece que estemos hablando de una gran mentira o algo parecido.
-"¿La falsa absorbitividad no entra en contradicción con la propiedad absorbitiva?"
-Para nada, la propiedad absorbitiva deja muy claro que si hacemos una operación que elimine el cero denominante nada de lo que dice es cierto de forma segura.
-"¿Qué mierda es un cero denominante? Eso te lo acabas de inventar tú."
-Se han cometido crímenes mucho más graves en esta entrada, no te centres en eso.
-"¿Por qué ϡ = R u Math Error? No hay demostración."
-Because yes.






















