PFH: La semana en Exercitium (1 de julio de 2022)

Esta semana he publicado en Exercitium las soluciones de los siguientes problemas:

A continuación se muestran las soluciones.

1. La sucesión del reloj astronómico de Praga

La cadena infinita “1234321234321234321…”, formada por la repetición de los dígitos 123432, tiene una propiedad (en la que se basa el funcionamiento del reloj astronómico de Praga: la cadena se puede partir en una sucesión de números, de forma que la suma de los dígitos de dichos números es la sucesión de los números naturales, como se observa a continuación:

Definir la lista

cuyos elementos son los términos de la sucesión anterior. Por ejemplo,

Soluciones

El código se encuentra en GitHub.

2. Codificación de Fibonacci

La codificación de Fibonacci http://bit.ly/1Lllqjv de un número n es una cadena d = d(0)d(1)…d(k-1)d(k) de ceros y unos tal que

donde F(i) es el i-ésimo término de la sucesión de Fibonacci

Por ejemplo, la codificación de Fibonacci de 4 es “1011” ya que los dos últimos elementos son iguales a 1 y

La codificación de Fibonacci de los primeros números se muestra en la siguiente tabla

Definir la función

tal que (codigoFib n) es la codificación de Fibonacci del número n. Por ejemplo,

Comprobar con QuickCheck las siguientes propiedades:

  • Todo entero positivo se puede descomponer en suma de números de la sucesión de Fibonacci.
  • Las codificaciones de Fibonacci tienen como mínimo 2 elementos.
  • En las codificaciones de Fibonacci, la cadena “11” sólo aparece una vez y la única vez que aparece es al final.

Soluciones

El código se encuentra en GitHub.

3. Pandigitales primos

Un número con n dígitos es pandigital si contiene todos los dígitos del 1 a n exactamente una vez. Por ejemplo, 2143 es un pandigital con 4 dígitos y, además, es primo.

Definir la lista

tal que sus elementos son los números pandigitales primos, ordenados de mayor a menor. Por ejemplo,

Soluciones

El código se encuentra en GitHub.

4. Aproximación del número pi

Una forma de aproximar el número π es usando la siguiente igualdad:

Es decir, la serie cuyo término general n-ésimo es el cociente entre el producto de los primeros n números y los primeros n números impares:

Definir la función

tal que (aproximaPi n) es la aproximación del número π calculada con la serie anterior hasta el término n-ésimo. Por ejemplo,

Soluciones

El código se encuentra en GitHub.

5. Números autodescriptivos

Un número n es autodescriptivo cuando para cada posición k de n (empezando a contar las posiciones a partir de 0), el dígito en la posición k es igual al número de veces que ocurre k en n. Por ejemplo, 1210 es autodescriptivo porque tiene 1 dígito igual a “0”, 2 dígitos iguales a “1”, 1 dígito igual a “2” y ningún dígito igual a “3”.

Definir la función

tal que (autodescriptivo n) se verifica si n es autodescriptivo. Por ejemplo,

Soluciones

El código se encuentra en GitHub.