Un polinomio se puede representar por una lista de coeficientes ordenados por grado (de menor a mayor). Por ejemplo, el polinomio se puede representar con la lista . Un monomio es un polinomio de un solo término. Por ejemplo es un monomio cuya representación como lista es . Notad que si el polinomio no es nulo, la lista que lo representa tiene como longitud exactamente el grado del polinomio mas uno. El polinomio nulo se representa con la lista vacía.
Diseñad las funciones que se piden a continuación. En todos los casos supondremos que los polinomios de entrada no son nulos. Aunque no es una hipótesis crucial, supondremos que los coeficientes de los polinomios de entrada son números enteros.
Escribid una función @derivada(p)@ que dada la lista @p@ que codifica a un polinomio retorne la lista de coeficientes que corresponden al polinomio que se obtiene al hacer la derivada del primero.
Diseñad una función @producto_monomio(p, m)@ que dadas dos listas, que codifican un polinomio y que representa un monomio, retorne la lista de coeficientes que corresponde al polinomio resultante de multiplicar @p@ por @m@.
Diseñad una función @suma(p,q)@ que retorne la suma de los polinomios y .
Haciendo uso de las dos funciones anteriores, diseñad una función @producto(p, q)@ que compute el producto de los polinomios y .
Cada apartado vale 25 puntos.
>>> derivada([-1, 5, -2, 3]) [5, -4, 9] >>> producto_monomio([1,3,2], [0,0,0,0,3]) [0, 0, 0, 0, 3, 9, 6] >>> suma([1, 1], [-2, -1 , 0, 3]) [-1, 0, 0, 3] >>> suma([2, 1, -1, 2], [-1, 1, 1, -2]) [1, 2] >>> suma([0, 1], [0, -1]) [] >>> producto([1, 1], [1, -1]) [1, 0, -1] >>> producto([2, 0, 1], [1, -1, 1, 2]) [2, -2, 3, 3, 1, 2] >>> producto([1, 2, 3, 4], [-1]) [-1, -2, -3, -4]