Ir al contenido principal

Número de raíces de la ecuación de segundo grado

Definir la función

   numeroDeRaices :: (Num t, Ord t) => t -> t -> t -> Int

tal que (numeroDeRaices a b c) es el número de raíces reales de la ecuación [latex]ax^2 + bx + c = 0[/latex]. Por ejemplo,

   numeroDeRaices 2 0 3    ==  0
   numeroDeRaices 4 4 1    ==  1
   numeroDeRaices 5 23 12  ==  2

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.

Soluciones en Haskell

numeroDeRaices :: (Num t, Ord t) => t -> t -> t -> Int
numeroDeRaices a b c | d < 0     = 0
                     | d == 0    = 1
                     | otherwise = 2
  where d = b^2-4*a*c

El código se encuentra en GitHub.

Soluciones en Python

def numeroDeRaices(a: float, b: float, c: float) -> float:
    d = b ** 2 - 4 * a * c
    if d < 0:
        return 0
    if d == 0:
        return 1
    return 2

El código se encuentra en GitHub.

Comentarios

  • En Haskell se usa un entorno local con where d = b^2-4*a*c y en Python se usa la asignación d = b ** 2 - 4 * a * c.