I1M2011: Simulación de un juego de cartas en Haskell

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos comentado la resolución de ejercicios de la 21ª relación. En esta relación se estudia la modelización de un juego de cartas
como aplicación de los tipos de datos algebraicos. Además, se definen los generadores correspondientes para comprobar las propiedades con QuickCheck.

Las soluciones de los ejercicios de la relación son
Read More “I1M2011: Simulación de un juego de cartas en Haskell”

I1M2011: Extensión de un programa en Haskell para decidir tautologías

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se han explicado las soluciones de los ejercicios de la 20ª relación, en la que se propone extiender el demostrador proposicional estudiado en el tema 9 para incluir disyunciones y equivalencias.

Los ejercicios, y sus soluciones, se muestran a continuación.
Read More “I1M2011: Extensión de un programa en Haskell para decidir tautologías”

LMF2012: Ejercicios de sintaxis y semántica de la lógica proposicional en Haskell (2)

En la clase de hoy del curso de Lógica matemática y fundamentos (de 3º de Grado en Matemáticas) se han comentados las soluciones de los ejercicios de la 2ª relación, cuyo objetivo es la formalización de la sintaxis y la semántica de la lógica proposicional en Haskell.

Las soluciones de los ejercicios corregidos se muestran a continuación
Read More “LMF2012: Ejercicios de sintaxis y semántica de la lógica proposicional en Haskell (2)”

I1M2011: Programa de cifras y letras en Haskell (1/2)

En la clase de hoy de Informática de 1º del Grado en Matemáticas hemos comenzado a desarrollar un programa en Haskell para resolver los problemas aritméticos del concurso Cifras y letras que consisten en dada una sucesión de números naturales y un número objetivo, intentar construir una expresión cuyo valor es el objetivo combinando los números de la sucesión usando suma, resta, multiplicación, división y paréntesis. Además, cada número de la sucesión puede usarse como máximo una vez y todos los números, incluyendo los resultados intermedios tienen que ser enteros positivos (1,2,3,…).

Por ejemplo, dada la sucesión 1, 3, 7, 10, 25, 50 y el objetivo 765, una solución es (1+50)*(25−10). Para el problema anterior existen 780 soluciones. En cambio, con la sucesión anterior y el objetivo 831, no hay solución.

En esta clase hemos estudiado cómo escribir un programa para resolver el problema por fuerza bruta. En la próxima estudiaremos cómo mejorar el programa.

El código del programa es
Read More “I1M2011: Programa de cifras y letras en Haskell (1/2)”

LMF2012: Sintaxis y semántica de la lógica proposicional en Haskell (1)

En la clase de hoy del curso de Lógica matemática y fundamentos (de 3º de Grado en Matemáticas) se han comentados las soluciones de los ejercicios de revisión de Haskell planteados en la clase anterior y se ha comenzado la solución de los ejercicios sobre la sintaxis y semántica de la lógica proposicional en Haskell.

Las soluciones de los ejercicios corregidos se muestran a continuación
Read More “LMF2012: Sintaxis y semántica de la lógica proposicional en Haskell (1)”