TAD de los polinomios - Reconocimiento de raíces por la regla de Ruffini
Utilizando el tipo abstracto de datos de los polinomios definir la función
esRaizRuffini :: Int -> Polinomio Int -> Bool
tal que esRaizRuffini r p
se verifica si r
es una raiz de p
, usando para ello el regla de Ruffini. Por ejemplo,
λ> ejPol = consPol 4 6 (consPol 1 2 polCero) λ> ejPol 6*x^4 + 2*x λ> esRaizRuffini 0 ejPol True λ> esRaizRuffini 1 ejPol False
Soluciones
Se usará la función restoRuffini
definida en el ejercicio Regla de Ruffini.
A continuación se muestran las soluciones en Haskell y las soluciones en Python.
Soluciones en Haskell
module Pol_Reconocimiento_de_raices_por_la_regla_de_Ruffini where import TAD.Polinomio (Polinomio, consPol, polCero) import Pol_Regla_de_Ruffini (restoRuffini) esRaizRuffini :: Int -> Polinomio Int -> Bool esRaizRuffini r p = restoRuffini r p == 0
Soluciones en Python
from src.Pol_Regla_de_Ruffini import restoRuffini from src.TAD.Polinomio import Polinomio, consPol, polCero def esRaizRuffini(r: int, p: Polinomio[int]) -> bool: return restoRuffini(r, p) == 0