TAD de los polinomios: Comprobación de raíces de polinomios
Usando el tipo abstracto de los polinomios,
definir la función
1 |
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,
1 2 3 4 5 6 7 |
λ> ejPol = consPol 4 6 (consPol 1 2 polCero) λ> ejPol 6*x^4 + 2*x λ> esRaiz 0 ejPol True λ> esRaiz 1 ejPol False |
Soluciones
A continuación se muestran las soluciones en Haskell y las soluciones en Python.
1 2 3 4 5 |
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 |
1 2 3 4 5 6 7 8 9 |
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 |