Fractal hexagonal

Escribir, usando CodeWorld, un programa para dibujar el fractal hexagonal que se muestra en la siguiente animación
Fractal_hexagonal

Las 4 primeras fases de la animación son

  • Fase 0:
    Fractal_hexagonal_0
  • Fase 1:
    Fractal_hexagonal_1
  • Fase 2:
    Fractal_hexagonal_2
  • Fase 3:
    Fractal_hexagonal_3

Nota: Este ejercicio ha sido propuesto por Agustín Martín Aguera.

Soluciones

Suma de las hojas de mínimo nivel

Los árboles binarios con valores en las hojas y en los nodos se definen por

Por ejemplo, el árbol

se pueden representar por

En el árbol anterior, los valores de las hojas de menor nivel son 4, 6 y 7 cuya suma es 17.

Definir la función

tal que (suma a) es la suma de los valores de las hojas de menor nivel del árbol a. Por ejemplo,

Soluciones

Bosque de recorridos del autobús

En la librería Data.Tree se definen los árboles y los bosques como sigue

Se pueden definir árboles. Por ejemplo,

También se pueden definir bosques. Por ejemplo,

Se pueden dibujar los bosques con la función drawForest. Por ejemplo,

Usando la notación de los ejercicios anteriores para las subidas y bajadas en el autobús, definir la función

tal que (bosqueRecorridos n m) es el bosque cuyas ramas son los recorridos correctos en un autobús de capacidad n y usando m paradas. Por ejemplo,

en donde la última rama representa el recorrido [(2,0),(2,2),(2,2)].

Soluciones

Caminos minimales en un árbol numérico

En la librería Data.Tree se definen los árboles y los bosques como sigue

Se pueden definir árboles. Por ejemplo,

Y se pueden dibujar con la función drawTree. Por ejemplo,

Los mayores divisores de un número x son los divisores u tales que u > 1 y existe un v tal que 1 < v < u y u*v = x. Por ejemplo, los mayores divisores de 24 son 12, 8 y 6.

El árbol de los predecesores y mayores divisores de un número x es el árbol cuya raíz es x y los sucesores de cada nodo y > 1 es el conjunto formado por y-1 junto con los mayores divisores de y. Los nodos con valor 1 no tienen sucesores. Por ejemplo, el árbol de los predecesores y mayores divisores del número 6 es

Definir las siguientes funciones

tales que

  • (mayoresDivisores x) es la lista de los mayores divisores de x. Por ejemplo,

  • (arbol x) es el árbol de los predecesores y mayores divisores del número x. Por ejemplo,

  • (caminos x) es la lista de los caminos en el árbol de los predecesores y mayores divisores del número x. Por ejemplo,

  • (caminosMinimales x) es la lista de los caminos en de menor longitud en el árbol de los predecesores y mayores divisores del número x. Por ejemplo,

Soluciones

Sumas de dos cuadrados

Definir la función

tal que (sumasDe2Cuadrados n) es la lista de los pares de números tales que la suma de sus cuadrados es n y el primer elemento del par es mayor o igual que el segundo. Por ejemplo,

Soluciones

[/schedule]