La semana en Exercitium (29 de abril de 2023)

Esta semana he publicado en Exercitium las soluciones de los siguientes problemas sobre el TAD (tipo abstracto de datos) de los polinomios.

A continuación se muestran las soluciones.

1. Construcción de términos

Usando el tipo abstracto de los polinomios, definir la función

tal que creaTermino n a es el término a·x^n. Por ejemplo,

Soluciones

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


Soluciones en Haskell


Soluciones en Python

2. Término líder de un polinomio

Usando el tipo abstracto de los polinomios, definir la función

tal que termLider p es el término líder del polinomio p. Por ejemplo,

Soluciones

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


Soluciones en Haskell


Soluciones en Python

3. Suma de polinomios

Usando el tipo abstracto de los polinomios, definir la función

tal que (sumaPol p q) es la suma de los polinomios p y q. Por ejemplo,

Comprobar con QuickCheck las siguientes propiedades:

  • polCero es el elemento neutro de la suma.
  • la suma es conmutativa.

Soluciones

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


Soluciones en Haskell


Soluciones en Python

4. Producto de polinomios

Usando el tipo abstracto de los polinomios, definir la función

tal que multPol p q es el producto de los polinomios p y q. Por ejemplo,

Comprobar con QuickCheck las siguientes propiedades

  • El producto de polinomios es conmutativo.
  • El producto es distributivo respecto de la suma.

Soluciones

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


Soluciones en Haskell


Soluciones en Python

5. Valor de un polinomio en un punto

Usando el tipo abstracto de los polinomios, definir la función

tal que valor p c es el valor del polinomio p al sustituir su variable por c. Por ejemplo,

Soluciones

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


Soluciones en Haskell


Soluciones en Python