Introducción
Los humanos son una especie notable, pero a veces podemos ser muy incómodos de entender, especialmente para las computadoras. En particular, parece que nos gusta escribir polinomios de una manera muy complicada con reglas aparentemente arbitrarias.
¿Cuál es el programa más corto que puede escribir para formatear un polinomio correctamente usando estas reglas?
Reto
Entrada
Una lista de enteros entre -1000 y 1000 (inclusive), que representan los coeficientes de un polinomio, siendo la última entrada el coeficiente de x ^ 0 (la constante), la segunda última es el coeficiente de x ^ 1, etc.
Salida
Una cadena que representa este polinomio en la notación matemática formateada correctamente de humanos.
Reglas:
- El signo en el coeficiente principal solo se muestra si es negativo.
Right: -x^2+3
Wrong: +x^2+3
- Los componentes con coeficiente de 0 no se imprimen (excepto en el caso de la esquina donde todos los coeficientes son 0 *).
Right: x^5-x^2+3
Wrong: x^5+0x^4+0x^3-x^2+0x+3
- Los coeficientes
-1
y+1
se mostrarán sin el 1, a menos que sean la constante.
Right: x^5-x^2+1
Wrong: 1x^5-1x^2+1
- El exponente solo se muestra si es mayor que 1 y la variable solo se muestra si el exponente es mayor que 0.
Right: 3x^3-7x^2+2x+1
Wrong: 3x^3-7x^2+2x^1+1x^0
- * Caso de esquina: si bien los valores cero generalmente no imprimen ese componente, si todos los coeficientes son cero, se debe imprimir la constante 0.
Right: 0
Wrong: 0x+0
Wrong: (nothing)
- Este es el código de golf, por lo que el ganador será el programa con la menor cantidad de bytes.
Ejemplo de entrada y salida
Input: Output:
[0] 0
[0,0] 0
[0,-1,35,0] -x^2+35x
[5,1,7,-9] 5x^3+x^2+7x-9
[100,0,0,-1] 100x^3-1
[931,21,-11,1] 931x^3+21x^2-11x+1
Espero ver sus soluciones. ¡Que te diviertas!
EDITAR:
- Puede rodear las operaciones con espacios en blanco si lo desea. Entonces,
3x+5
y3x + 5
ambos están bien.3x+ 5
y3x +5
no lo son - Si desea producir caracteres exponentes reales (digamos en Tex), eso está permitido, ya que está aún más cerca de cómo escriben los humanos.
- Los coeficientes deben aparecer sin decimales, por ejemplo,
9x^2
es correcto,9.0x^2
no lo es.
1x
-> x
sustitución no cambia 21x^2
en 2x^2
.
3x^2 + 4
versus3x^2+4
?