0votos

Miguel Ángel en Haskell

por josejuan hace 6 años

Como "algoritmo" es suficiente con usar la famosa fórmula para obtener ambas soluciones. El hecho de ser imaginarias no cambia el algoritmo, únicamente que el tipo de dato debe admitir números complejos. Por ejemplo en Haskell usando "Data.Complex", pero en cualquier otro lenguaje no debería distar mucho.

Programa sencillo

1
2
3
4
5
6
7
8
-- Para solucionar lo que se pide bastaría: 
solvePx2 a b c = (s (+), s(-)) where s o = (-b `o` sqrt (b * b - 4 * a * c)) / (2 * a) 
 
 
 
-- Si queremos enfatizar (o asegurar nosotros si el contexto no lo hace) las soluciones imaginarias 
solvePx2 :: (RealFloat a, Floating a) => Complex a -> Complex a -> Complex a -> (Complex a, Complex a) 
solvePx2 a b c = (s (+), s(-)) where s o = (-b `o` sqrt (b * b - 4 * a * c)) / (2 * a) 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.