miércoles, 21 de diciembre de 2011

El algoritmo de Moessner

(Con esta entrada participamos en el Carnaval de Matemáticas 2.9, cuyo anfitrión es el blog "Que no te aburran las M@TES")



Presentamos hoy una curiosidad matemática a base de cribados: toma la lista de los primeros números naturales.
1    2    3    4    5    6    7    8    9    10   11    12    13     14

Tacha después uno de cada cuatro, comenzando con el mismo 4:
1    2    3    5    6    7    9    10    11    13   14

Después escribe la lista de sus sumas parciales.
1    3    6    11    17    24    33    43    54    67    81

Y ahora tachas de tres en tres, sumando después de nuevo.
1    3    11    17    33    43    67    81
1    4    15    32    65    108   175    256

Después tachas de dos en dos
1    15    65    175

Y sumas
1    16    81    256

El resultado es la serie de las potencias cuartas de los naturales. Recuerda que hemos comenzando tachando de cuatro en cuatro. ¿Funcionará con el tres?


Lo escribimos sin explicaciones:

1    2    4    5    7    8    10    11    13    14    16    17
1    3    7   12  19  27  37  48  61  75  91  108
1    7   19   37    61     91
1    8   27  64   125   216

Resultan los cubos. Prueba de dos en dos y obtendrás los cuadrados. ¿Funcionará esto siempre? Este algoritmo lo propuso Alfred Moessner y fue demostrada su validez para cualquier valor natural por Oskar Perron en 1951 usando la inducción matemática.

Nuestro objetivo hoy es reproducir este algoritmo con hoja de cálculo, que por cierto no es nada fácil. Contiene una verdadera trampa, que es la posible confusión entre valores y posiciones. Lo vemos:



En la celda A9 escribimos la amplitud de los saltos. En la imagen está preparado para que resulten las cuartas potencias. La hoja se encarga de ir restando una unidad hacia abajo y dejar de escribir cuando se llegue a 1. El modelo está preparado para llegar a 5, pero si lo descargas puedes ampliarlo a tu gusto.

La fila 7 contiene la serie de números naturales. Después se van repitiendo hacia abajo tres filas:

Primera: Es un artificio, pues la hoja debe buscar el elemento a tachar cada vez más lejos, y dependiendo del valor de A9. Esto lo hemos resuelto con la fórmula (usamos la contenida en C8)

=SI(ESNUMERO($A12);SI(RESIDUO(C$7-1;$A12)=0;B8+1;B8);"")

En primer lugar verifica si aún quedan saltos por dar con ESNUMERO($A12). Después encuentra el residuo del número de arriba respecto al salto y hace avanzar el contador (B8) si ese número es múltiplo del salto. Así medimos el alejamiento del elemento que debemos tachar. Observa que van aumentando los valores cada tres (representan los tres supervivientes después de tachar)

Segunda: Aquí se eligen los números entre los de arriba, saltando los que ocupan un lugar múltiplo de 3. Después, con la función DESREF se dirigen a la celda adecuada para copiar el número:

=SI(ESNUMERO($A12);DESREF(C9;-2;C8);"")

DESREF se dirige a dos filas más arriba (-2) y salta según indica el valor de arriba (C8). Como esta contiene los saltos adecuados, cada vez que cambie su valor se tacha un número. Es lo que queríamos. No es fácil de entender y cuesta encontrar el procedimiento.

Tercera: Se limita a acumular sumas, y al llegar al nivel 1 produce las potencias deseadas.
Aunque esto no pasa de una curiosidad, la construcción del algoritmo es apasionante. Este que ofrecemos no usa macros, y lo puedes descargar en dos versiones desde

hojamat.es/blog/moessner.zip

2 comentarios:

JARA dijo...

Pues la verdad es que solo funciona para los 11 primeros números. La potencia 4ª de 11 es 14641 y según la criba sería 14600, con lo cual hay -41. Del 12 una diferencia de -336, del 13, 1161… En fin.

Antonio Roldán Martínez dijo...

Hasta hoy no he podido autorizar tu comentario. Este algoritmo es una simple curiosidad.