El algoritmo de Moessner en Haskell

La presente relación de ejercicios está basada en el artículo El algoritmo de Moessner escrito por Antonio Roldán Martínez en su blog Números y hoja de cálculo.

El proceso de Moessner de orden n consiste en lo siguiente: De la lista de los números naturales, se tacha los elementos que ocupan las posiciones n, 2*n, … y se forma la sucesión de las sumas parciales de los restantes elementos. De la resultante sucesión se tacha los elementos que ocupan las posiciones n-1, 2*(n-1), … y se forma la sucesión de las sumas parciales de los restantes elementos. El proceso se repite n-1 veces. Por ejemplo, para n=2:

Se observa que los elementos de la última es la sucesión de los cuadrados. Para n=3, el proceso de Moessner es

Se observa que los elementos de la última es la sucesión de los cubos. Para n=4, el proceso de Moessner es

Se observa que los elementos de la última es la sucesión de los cuartas potencias. El teorema de Moessner afirma que para cualquier n, la sucesión obtenida mediante el proceso de Moessner es la de las potencias n-ésimas; es decir 1^n, 2^n, 3^n, 4^n, \dots

El objetivo de los siguientes ejercicios es definir en Haskell una función que simule el proceso de Moessner y comprobar el teorema.

Referencias

  1. J.H. Conway y R.K. Guy Moessner’s magic. En “The Book of Numbers” pp. 63-65
  2. J.H. Conway y T. HsuSome Very interesting sequences.
  3. R. Hinze Scans and convolutions. A calculational proof of Moessner’s theorem.
  4. D. Kozen y A. Silva On Moessner’s theorem.
  5. M.A. Lerma La magia de Moessner.
  6. C.T. Long A note on Moessner’s process
  7. A. Roldán El algoritmo de Moessner.
  8. E.W. Weisstein Moessner’s theorem.