El problema de la igualdad de los bordes de los árboles binarios (sameFringe)

Dos árboles binarios tienen iguales los bordes si tienen exactamente
las mismas hojas leídas de izquierda a derecha, independientemente de
nodos interiores. Por ejemplo,

Los bordes de los árboles 1 y 2 son iguales, aunque tiene distintas
estructuras internas. El árbol 3 no tiene el mismo borde que el 1 o
el 2, debido al nodo 4. El árbol 4 tampoco tiene el mismo borde que
el 1 debido al orden en que se leen las hojas.

El problema de la igualdad de los bordes de los árboles binarios
(samefringe, en inglés) consiste en decidir si dos árboles tienen los bordes iguales.
Read More “El problema de la igualdad de los bordes de los árboles binarios (sameFringe)”

Relación entre el número e y los números primos en Maxima

En el artículo anterior comenté la relación entre los números primos y el número e expresada mediante la fórmula


 e = \displaystyle\lim_{n \to{+}\infty}\displaystyle\sqrt[p_n]{\displaystyle\prod_{i=1}^n p_i}

donde p_i es el i-ésimo número primo. Así mismo mostré un ejercicio en Haskell para comprobarla.

En el artículo de hoy presento un ejercicio para comprobar la fórmula anterior en Maxima, pensado para el curso de Informática (del Grado de Matemáticas) y el libro Introducción al cálculo simbólico con Maxima.

El ejercicio es el siguiente

Read More “Relación entre el número e y los números primos en Maxima”

Ventajas de la pereza en el problema de los k menores elementos

Una característica singular de Haskell es su carácter perezoso, frente al impaciente de la mayoría de los restantes lenguajes.

Los lenguajes perezosos usan evaluación perezosa; es decir, al evaluar una expresión evalúan sus argumentos sólo cuando los necesita. De manera opuesta, en la evaluación impaciente los argumentos de las expresiones se evalúan antes que las expresiones.

En esta entrada presento un ejercicio para Informática (del Grado de Matemáticas) con objeto de resaltar la ventaja de la evaluación perezosa de Haskell frente a la evaluación impaciente de Maxima. Para ello compararé sus rendimientos al calcular los k primeros elementos de una lista con definiciones semejantes en Haskell y Maxima.
Read More “Ventajas de la pereza en el problema de los k menores elementos”

Cruce de listas

En esta entrada comento las soluciones en Haskell y Maxima de un problema planteado por Adam Majewski en la lista de Maxima en forma de ejercicio para I1M y PD. Además, añadiré soluciones en otros lenguajes conforme las vaya recibiendo.

1. Solución en Haskell

En este ejercico se usarán las siguientes librerías


Ejercicio 1. Definir la función

tal que (cruce xs ys) es la lista de las listas obtenidas con uniendo las listas de xs sin un elemento con las de ys sin un elemento. Por ejemplo,


Read More “Cruce de listas”