TAD de los polinomios - Comprobación de raíces de polinomios
Utilizando el tipo abstracto de datos de los polinomios definir la función
esRaiz :: (Num a, Eq a) => a -> Polinomio a -> Bool
tal que esRaiz c p
se verifica si c
es una raiz del polinomio p
. Por ejemplo,
λ> ejPol = consPol 4 6 (consPol 1 2 polCero) λ> ejPol 6*x^4 + 2*x λ> esRaiz 0 ejPol True λ> esRaiz 1 ejPol False
Soluciones
Se usará la función valor
definida en el ejercicio Valor de un polinomio en un punto.
A continuación se muestran las soluciones en Haskell y las soluciones en Python.
Soluciones en Haskell
import TAD.Polinomio (Polinomio, polCero, consPol) import Pol_Valor_de_un_polinomio_en_un_punto (valor) esRaiz :: (Num a, Eq a) => a -> Polinomio a -> Bool esRaiz c p = valor p c == 0
Soluciones en Python
from typing import TypeVar from src.Pol_Valor_de_un_polinomio_en_un_punto import valor from src.TAD.Polinomio import Polinomio, consPol, polCero A = TypeVar('A', int, float, complex) def esRaiz(c: A, p: Polinomio[A]) -> bool: return valor(p, c) == 0