El problema de los emojis (2022)
(artofproblemsolving.com)- Se trata una variante de un rompecabezas de ecuaciones con frutas y emojis de internet como una ecuación diofántica entera, y se sigue el proceso hasta construir una solución en enteros positivos
- La herramienta clave no es buscar de inmediato soluciones enteras, sino encontrar primero puntos racionales y generar nuevos puntos racionales mediante un método geométrico con rectas o tangentes
- Tras sustituciones de variables y una rotación, la ecuación se convierte en una curva elíptica simétrica, pero los puntos fáciles que se ven al principio no conducen directamente a soluciones positivas del problema original
- En la curva elíptica, la recta que une dos puntos racionales o la tangente en un punto produce un tercer punto de intersección, y gracias a la fórmula de Viète ese punto también sigue siendo racional
- Después de encontrar con Mathematica un punto menos trivial y repetir las operaciones, se construye una enorme solución entera positiva al volver a las variables originales
Cómo un rompecabezas de emojis de internet se convirtió en un problema matemático
- En internet circulaban mucho rompecabezas de ecuaciones con emojis diseñados para producir respuestas distintas al confundir detalles como la cantidad de bananas
- A comienzos de 2017 apareció en r/math un hilo de Reddit sobre el cansancio de los típicos rompecabezas matemáticos de frutas estilo Facebook, y un usuario creó un problema más difícil usando dibujos de frutas
- Sridhar Ramesh modificó ligeramente ese problema y lo difundió ampliamente, convirtiéndolo en un rompecabezas de mala fama cuya solución mínima era larguísima y se consideraba que requería conocimientos de curvas elípticas
- El objetivo es resolver realmente esa versión modificada del problema de emojis
Ejemplo preparatorio: ternas pitagóricas y puntos racionales
- Primero se trata como ejemplo más sencillo el problema de encontrar ternas pitagóricas
- En vez de buscar directamente soluciones enteras, la estructura se simplifica si se transforma en el problema de encontrar puntos racionales sobre la circunferencia unitaria correspondiente
- Si se parte de un punto racional de la circunferencia unitaria y se traza una recta con pendiente racional, el segundo punto donde corta al círculo también es racional
- Al hallar las intersecciones de la recta y el círculo aparece una ecuación cuadrática
- Como los coeficientes son racionales y una raíz ya es racional, por la fórmula de Viète la otra raíz también es racional
- A la inversa, cualquier otro punto racional de la circunferencia unitaria tiene una recta de pendiente racional que lo une con el punto inicial, así que todos los puntos racionales pueden obtenerse del mismo modo
- Este proceso lleva a la forma estándar que expresa todas las ternas pitagóricas mediante dos enteros positivos y un múltiplo
- El patrón importante es el método de obtener nuevos puntos con una recta, y una idea similar se usa en el problema original de emojis
Convertir la ecuación original en una curva elíptica
- La ecuación del problema de emojis, tras eliminar denominadores, se transforma de la búsqueda de soluciones enteras al problema de hallar puntos racionales para las razones entre variables
- En lugar de buscar de inmediato solo soluciones enteras positivas, primero se explora el conjunto completo de puntos racionales, incluidos positivos y negativos
- La gráfica no cambia al intercambiar dos variables, así que tiene una simetría inclinada
- Por conveniencia, mediante una sustitución de variables se rota la gráfica para llevarla a una forma simétrica respecto de los ejes, y a esta curva se la llama curva elíptica
- Hay puntos racionales fáciles de ver en la gráfica, pero no corresponden a soluciones positivas válidas del problema original
- Por eso hay que tomar esos puntos fáciles como punto de partida para generar más puntos racionales
El truco de la recta que también funciona en curvas elípticas
- Si se traza la recta que une dos puntos racionales (P), (Q) sobre una curva elíptica, esa recta vuelve a cortar la curva en un tercer punto (R)
- Ese tercer punto de intersección también es un punto racional
- Al sustituir la ecuación de la recta en la ecuación de la curva elíptica aparece una ecuación cúbica en una variable
- Los coeficientes de la ecuación cúbica son racionales
- Como dos de las raíces ya son racionales porque provienen de las coordenadas de (P) y (Q), por la fórmula de Viète la tercera raíz también es racional
- Al sustituirla de nuevo en la ecuación de la recta, la otra coordenada también queda determinada como racional
- En el caso (P=Q), en lugar de la recta que une dos puntos se usa la tangente en ese punto, y la intersección se calcula contando multiplicidades
- Incluso al unir los puntos fáciles iniciales o trazarles tangentes, solo se repiten algunos pocos puntos y no se expande hacia puntos nuevos y útiles
- Esos puntos son torsion point, así que repetir el mismo truco de la recta ya no permite escapar hacia puntos nuevos
Buscar puntos racionales dentro de la región válida
- Con Mathematica se buscaron puntos racionales menos triviales sobre la curva elíptica, y uno de ellos se usó en los cálculos posteriores
- El objetivo no es cualquier punto racional, sino uno que, al volver a las variables originales, haga que los tres valores sean positivos
- Si todas las variables son negativas, se pueden cambiar todos los signos para obtener una solución positiva, así que se fija una variable como positiva y se reconstruyen las condiciones hacia atrás
- Esta condición aparece como una región verde específica en el plano de coordenadas transformado, y hay que enviar un punto racional de la curva elíptica dentro de esa región
- Hacerlo a mano es muy engorroso, así que con Mathematica se calcularon las fórmulas de las coordenadas de intersección producidas por operaciones con rectas y tangentes
- Se obtuvieron fórmulas de coordenadas tanto para el tercer punto de intersección de la recta que une dos puntos como para el tercer punto generado por la tangente en un punto, y las expresiones se volvieron muy complejas mientras los números crecían
Construcción final de la solución entera positiva
- A partir del punto racional inicial se traza una tangente para obtener un punto nuevo, y luego se vuelve a trazar una tangente en ese nuevo punto para obtener el siguiente, repitiendo el proceso
- Incluso tras varias operaciones con tangentes no se entra de inmediato en la región objetivo, así que además se crea otro punto uniendo uno de los puntos con el punto obtenido al cambiar el signo de sus coordenadas
- Al final, se une un “buen” punto racional reservado de antemano con el punto de coordenadas grandes obtenido antes, y por fin se alcanza un punto racional dentro de la región verde objetivo
- Ese punto racional final se devuelve a las variables originales y, al multiplicar por el mínimo común múltiplo de los denominadores, se construye una solución entera positiva
- La verificación final confirma que la enorme solución entera construida satisface la ecuación del problema original de emojis
1 comentarios
Opiniones de Hacker News
Pero en vez de usar algo como
x, usaba nombres como nube esponjosa o estrella; los niños se irritaban, pero seguían interesados, y más tarde hicieron lo mismo al ayudar a sus amigosEs fácil olvidar cómo se siente aprender este tipo de abstracción por primera vez, y era importante mostrar que
xno tiene nada de especial: también podría ser el sol, o una frase como “número total de gatos”Pero cuando eso luego se publica, la legibilidad se vuelve realmente mala. Terminas en situaciones como: “hay un término que cumple un papel importante en esta ecuación, ¿pero qué demonios significa? Alguien lo llamó
φ, así que no tengo idea”Solía bromear que, si crees que los programadores son malos poniendo nombres, deberías ver a los matemáticos. Los matemáticos sienten un orgullo extraño por su incapacidad para poner nombres
Lo peor son los programas derivados directamente de papers de matemáticas. Si una variable contiene un coeficiente de correlación, llámala así. Tenemos miles de años de lenguaje y símbolos para compartir ideas; no lo codifiques para llamarlo
rhoPero en realidad pasó esto: https://chatgpt.com/share/682cce62-c53c-8003-be2c-2929395868...
En resumen, el modelo propone con confianza valores tentativos, calcula, decide que están mal y sigue intentándolo, incluso repitiendo las mismas conjeturas. No reconoció en absoluto la simetría y actuó como un agente completamente sin estructura
Al final afirmó con mucha seguridad que este acertijo no tiene solución; si el modelo se comporta así de mal también con acertijos futuros, tendré que revisar mi confianza
También se lo pregunté a ChatGPT o3 y pensó durante 11.5 minutos: https://chatgpt.com/share/682d0993-db4c-8004-a66c-3908ef7203...
¿No hay una versión de ChatGPT que se conecta a Wolfram Alpha? Me pregunto si intentaste con esa
Hay más contexto y casos relacionados aquí: https://x.com/TheOisinMoran/status/1299124512240398336
Es mucho más fácil seguir dónde se usa cada variable, y permite captar de un vistazo la estructura pura del código. Un ejemplo que publiqué antes está aquí: https://imgur.com/F27ZNfk
Lamentablemente, la mayoría de los lenguajes modernos como Rust y JS siguen las recomendaciones XID_Start/XID_Continue, cuya motivación personalmente no me parece muy sólida, y excluyen todos los caracteres emoji de los identificadores
4, la solución más pequeña puede ser un número realmente enorme: https://observablehq.com/@robinhouston/a-remarkable-diophant...¿Hay alguna parte suficientemente fácil de confundir como para hacer que la gente discuta, o es un problema tan fácil que hace que todos se apuren a presumir?
A mí me dio
10, 4, 2, aunque quizá soy yo el confundidoAsí que parece que se puede interpretar como
1 + 10 + 3