Desafío
Dadas las raíces de un polinomio separadas por espacios como entrada, genera la forma expandida del polinomio.
Por ejemplo, la entrada
1 2
representa esta ecuación:
(x-1)(x-2)
Y debería dar salida:
x^2-3x+2
El formato exacto de salida no es importante, puede ser:
1x^2+-3x^1+2x^0
o:
0 0 0
1x^3+0x^2+0x^1+0
o:
3 14 15 92
1x^4+-124x^3+3241x^2+-27954x^1+57960
Puntuación / Reglas
eval
y los "me gusta" no están permitidos.- Puede usar cualquier versión de Python o cualquier otro idioma .
numpy.poly
?Respuestas:
Jalea, 15 bytes
Esto se usa
Æṛ
para construir los coeficientes de un polinomio monico con raíces dadas. Pruébalo en línea!Cómo funciona
Versión alternativa, 24 bytes.
Esto no utiliza elementos integrados relacionados con polinomios. Pruébalo en línea!
Cómo funciona
fuente
MATL , 29 bytes
La entrada es una matriz con las raíces.
EDICIONES:
X+
función se ha eliminado, ya queY+
incluye su funcionalidad. Entonces, en el código anterior, reemplaceX+
porY+
.YD
función,w
en el código anterior debe eliminarse.El siguiente enlace incluye esos cambios.
Pruébalo en línea!
Explicación
Esto aplica una convolución repetida con términos de la forma
[1, -r]
donder
es una raíz.fuente
Ruby, 155 bytes
Función anónima, la entrada es una matriz de las raíces.
Imprime desde la potencia más baja primero, por lo que al llamar
f[[1,2]]
(suponiendo que le haya asignado la funciónf
) se devuelve la cadena"2x^0+-3x^1+1x^2"
.fuente
Python 3, 453 bytes (espacios eliminados y más) -> 392 bytes
Marque este enlace , lo ayudará a entender la razón detrás de esas dos importaciones.
fuente
from operator import*
,from functools import*
guarde algunos bytesimport functools,operator
Haskell, 99
imprime las potencias inferiores primero, con una adicional
0+
al comienzo. por ejemplo:La función calcula los coeficientes agregando progresivamente más raíces, como convoluciones, pero sin la función incorporada.
Luego usamos la lista mónada para implícitamente
concat
todos los monomios diferentes.fuente
Sabio, 38 bytes
Pruébalo en línea
Esto define una lambda sin nombre que toma un iterable de raíces como entrada y calcula el producto
(x-x_n) for x_n in roots
, luego lo expande.fuente
Mathematica, 26 bytes
Mathematica tiene potentes polinomios incorporados.
Uso
fuente
JavaScript (ES6), 96 bytes
fuente