Feu una funció
mult :: [Double] -> [Double] -> [Double] que, donats
dos polinomis, en calculi el seu producte. Els polinomis es representen
a través de llistes que corresponen als seus coeficients. Per exemple,
la llista
representa el polinomi
.
Els dos polinomis a multiplicar sempre tindràn el mateix nombre de coeficients, diguem-ne . Aquest serà sempre una potència de dos. El resultat ha de ser un nou polinomi amb coeficients.
Per tal d’evitar problemes de precisió, els jocs de proves
arrodoneixen els valors reals a
decimals amb la funció myRound k.
test-1: Entrades amb petita.
test-2: Entrades amb gran.
Input
let myRound k f = (fromInteger $ round $ f * (10^k)) / (10.0^^k) map (myRound 2) $ mult [2,1] [3,-2] map (myRound 2) $ mult [2,1,0,0] [3,-2,0,0] map (myRound 2) $ mult [3.5,-2,6,1] [3.5,-2,6,1] map (myRound 2) $ mult [1,2,3,4,5,6,7,8] [0,0,0,0,1,0,0,0]
Output
[6.0,-1.0,-2.0,0.0] [6.0,-1.0,-2.0,0.0,0.0,0.0,0.0,0.0] [12.25,-14.0,46.0,-17.0,32.0,12.0,1.0,0.0] [0.0,0.0,0.0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,0.0,0.0,0.0,0.0]