2015 y los números pitagóricos

Un número pitagórico es un número natural cuyo cuadrado se puede escribir como la suma de los cuadrados de dos números naturales no nulos; es decir, el número natural a es pitagórico si existen dos números naturales b y c distintos de cero tales que a² = b²+c². Por ejemplo, 5 es un número pitagórico ya que 5² = 3²+4² y también lo es 2015 ya que 2015² = 1612²+1209².

Definir la sucesión

cuyos elementos son los números pitagóricos. Por ejemplo,

Calcular la posición de 2015 en la sucesión.

Soluciones

Varios cuadrados encajados rotando

Enunciado

Definir la función

de forma que (cuadrados n) sea la animación obtenida rotando n cuadrados encajados como se muestra a continuación.

Nota: Escribir las soluciones usando la siguiente plantilla

Soluciones

Varios cuadrados encajados

Enunciado

Definir la función

tal que (cuadrados n) dibuje n cuadrados encajados como se muestra en las siguientes figuras:

  • para n=2
    Cuadrados_encajados_2

  • para n=4
    Cuadrados_encajados_4

  • para n=10
    Cuadrados_encajados_10

Nota: Escribir las soluciones usando la siguiente plantilla

Soluciones

Dos cuadrados encajados

Enunciado

Definir la función

que dibuje dos cuadrados encajados como se muestra en la siguiente figura
2CuadradosEncajados

Nota: Escribir las soluciones usando la siguiente plantilla

Soluciones

Simplificación de expresiones booleanas

El siguiente tipo de dato algebraico representa las expresiones booleanas construidas con una variable (X), las constantes verdadera (V) y falsa (F), la negación (Neg) y la disyunción (Dis):

Por ejemplo, la expresión (¬X v V) se representa por (Dis (Neg X) V).

Definir las funciones

tales que (valor p i) es el valor de la expresión p cuando se le asigna a X el valor i. Por ejemplo,

y (simplifica p) es la expresión obtenida aplicándole a p las siguientes reglas de simplificación:

Por ejemplo,

Comprobar con QuickCheck que para cualquier expresión p y cualquier booleano i se verifica que (valor (simplifica p) i) es igual a (valor p i).

Nota: Escribir las soluciones usando la siguiente plantilla que contiene un generador de expresiones booleanas

Soluciones