Definir la función
polinomioDigital :: Int -> Polinomio Int |
tal que (polinomioDigital n) es el polinomio cuyos coeficientes son los dígitos de n. Por ejemplo,
λ> polinomioDigital 5703 5*x^3 + 7*x^2 + 3 |
Nota: Este ejercicio debe realizarse usando únicamente las funciones de la librería I1M.Pol que se encuentra aquí y se describe aquí.
Soluciones
import I1M.Pol polinomioDigital :: Int -> Polinomio Int polinomioDigital = creaPolDensa . digitos -- (digitos n) es la lista de las dígitos de n. Por ejemplo, -- dígitos 142857 == [1,4,2,8,5,7] digitos :: Int -> [Int] digitos n = [read [x]| x <- show n] -- (creaPolDensa xs) es el polinomio cuya representación densa es -- xs. Por ejemplo, -- creaPolDensa [7,0,0,4,0,3] == 7*x^5 + 4*x^2 + 3 creaPolDensa :: (Num a, Eq a) => [a] -> Polinomio a creaPolDensa [] = polCero creaPolDensa (x:xs) = consPol (length xs) x (creaPolDensa xs) |
6 soluciones de “Polinomio digital”