Cociente entero de polinomios
El cociente entero de un polinomio P(x) por un monomio axⁿ es el polinomio que se obtiene a partir de los términos de P(x) con un grado mayor o igual que n, realizando la división entera entre sus coeficientes y el coeficiente del monomio divisor y restando el valor de n al de sus grados. Por ejemplo,
- El cociente entero de 4x⁴ + 6x³ + 7x² + 5x + 2 por el monomio 3x² se obtiene a partir de los términos 4x⁴ + 6x³ + 7x² realizando la división entera entre sus coeficientes y el número 3 y restando 2 a sus grados. De esta forma se obtiene x² + 2x + 2
- El cociente entero de 6x⁵ + 2x⁴ + 8x³ + 5x² + 8x + 4 por el monomio 4x³ se obtiene a partir de los términos 6x⁵ + 2x⁴ + 8x³ realizando la división entera entre sus coeficientes y el número 4 y restando 3 a sus grados. De esta forma se obtiene x² + 2
Definir la función
1 |
cocienteEntero :: Polinomio Int -> Int -> Int -> Polinomio Int |
tal que (cocienteEntero p a n) es el cociente entero del polinomio p por el monomio de grado n y coeficiente a. Por ejemplo,
1 2 3 4 5 |
ghci> let listaApol xs = foldr (\(n,b) -> consPol n b) polCero xs ghci> cocienteEntero (listaApol [(4,4),(3,6),(2,7),(1,5),(0,2)]) 3 2 x^2 + 2*x + 2 ghci> cocienteEntero (listaApol [(5,6),(4,2),(3,8),(2,5),(1,8),(0,4)]) 4 3 x^2 + 2 |
Nota: Este ejercicio debe realizarse usando únicamente las funciones de la librería I1M.Pol que se encuentra aquí y se describe aquí.
Soluciones
1 2 3 4 5 6 7 |
import I1M.Pol cocienteEntero :: Polinomio Int -> Int -> Int -> Polinomio Int cocienteEntero p a n | grado p < n = polCero | otherwise = consPol (grado p - n) (coefLider p `div` a) (cocienteEntero (restoPol p) a n) |
Un comentario