LI2012: Semántica de la lógica de primer orden

En la clase de hoy del curso Lógica Informática se ha completado el estudio de la semántica de la lógica de primer orden introduciendo los conceptos de consistencia, consecuencia lógica y equivalencia. Se ha explicado la metodología de búqueda semántica de modelos y contramodelos.

Las transparencias de esta clase son las páginas 35 a 45 del tema 7:
Read More “LI2012: Semántica de la lógica de primer orden”

I1M2012: Ejercicios de definiciones por recursión y comprensión en Haskell (3)

En la clase de hoy de Informática de 1º del Grado en Matemáticas hemos comentado las soluciones de los ejercicios 14 a 17 de la 9ª relación y 1 a 3 de la 10ª relación en las que se presentan ejercicios con dos definiciones (una por recursión y otra por comprensión) y la comprobación de la equivalencia de las dos definiciones con QuickCheck.

Los ejercicios, y sus soluciones, se muestran a continuación: Las de la relación 9 son
Read More “I1M2012: Ejercicios de definiciones por recursión y comprensión en Haskell (3)”

I1M2012: Número con mayor cantidad de divisores

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos comentado la solución con Haskell de un problema propuesto para la Olimpiada Internacional de Matemáticas de 1983. Su enunciado es

”¿Cuál de los números 1, 2, …, 1983 tiene mayor número de divisores?”

Se van a presentar distintas soluciones y comparar sus eficiciencias. La primera definición es

donde (divisores1 n) es el conjunto de los divisores de n.

El cálculo con la primera definición es

En la segunda definición se cambia la definición de divisores

El cálculo con la segunda definición es

En la tercera definición se ordenan los pares

El cálculo con la tercera definición es

Se observa que el tiempo se ha reducido de 9.00 segundos a 2.76.