DESAFÍO: Ecuaciones de primer grado en una variable
Este problema tiene una dificultad superior a la habitual en la asignatura y se ofrece como un DESAFÍO a alumnos avanzados. El contenido de la asignatura basta para resolverlo, pero requiere pensar y analizar bastante más de lo que es necesario para superar esta.
Sabes resolver ecuaciones de primer grado, ¿verdad? ¿Lo suficientemente bien como para enseñarle a un ordenador a hacerlo por ti? En este problema te retamos a escribir un programa que resuelva ecuaciones de primer grado en una variable con coeficientes naturales. Sencillo, ¿no?
Entendemos que una ecuación de primer grado es una sucesión de términos unidos por operadores de adición, substracción o igualdad, con exactamente un operador de igualdad en ella. Estos operadores se encuentran siempre entre dos espacios para facilitar su lectura. Los términos pueden ser o bien números enteros o bien monomios en la variable (, o donde es un entero).
Este tipo de ecuación puede o bien tener una única solución real, que será un número racional que deberá expresarse en forma canónica (se recomienda resolver antes este problema), o bien no tener ninguna solución (por ejemplo ), o bien tener por solución cualquier número real (por ejemplo ). En estos casos deberá indicarse la situación con un mensaje como en los ejemplos.
Buena suerte.
Science is knowledge which we understand so well that we can teach it to a computer - Donald Knuth.
Entrada
Una ecuación de primer grado en términos descritos en el enunciado.
Salida
O bien la única solución expresada como una fracción en forma canónica o bien el mensaje "No tiene solución real" o bien el mensaje "Todo real es solución".
Ejemplo de entrada 1
1 - x = -2
Ejemplo de salida 1
3
Ejemplo de entrada 2
-2 + -10x = 6
Ejemplo de salida 2
-4/5
Ejemplo de entrada 3
1 + -2x = 2 - 2x
Ejemplo de salida 3
No tiene solución real
Ejemplo de entrada 4
1 + -2x = 1 - 2x
Ejemplo de salida 4
Todo real es solución
Ejemplo de entrada 5
1 + -2x + x + -3x + 10 = 7 - 2x + 1
Ejemplo de salida 5
3/2
Comentarios
Hemos hecho visible más casos en la solución para ayudar a entender alguna de las dificultades del problema. ¡Ánimo a los contendientes de este año!
Hemos detectado una errata en uno de los casos de prueba ocultos donde no se respetaba la indicación sobre los espacios entre operadores que describe el enunciado.
Se han vuelto a evaluar las soluciones enviadas. Enhorabuena por el buen trabajo :)