Dorefasi Faredo: Solución al piano gigantesco

Publicado el 04 mayo 2011 por Eliatron

La verdad es que por causas personales (mudanza de piso) no he podido atender mis deberes blogueriles y he dejado algunos de los de desafíos Matemáticos de la Real Sociedad Matemática Española y El País sin resolver ni mencionar en el blog.
Mi situación ya se ha arreglado y volvemos esta semana a publicar el enunciado correspondiente a este nuevo desafío y que lleva por título Un piano Gigantesco. El enunciado lo podéis escuchar aquí mismo


En él, dado un piano muy muy grando, tocamos un DO, a continuación tocamos la siguiente tecla, RE; ahora nos saltamos 1 y tocamos la siguiente FA; ahora saltamos 2 y tocamos la siguiente, SI, saltamos 3 y tocamos la siguiente, FA; y así sucesivamente hasta que hayamos tocado 7000 teclas. Se nos pide determinar cuántas teclas DO tocaremos y si hay alguna nota que nunca toquemos.
La solución no es demasiado complicada, de hecho, creo que cualquiera que lo intente por el método de la cuenta de la vieja (ojo, que la vieja sabe contar muy bien) se da cuenta del quid: las notas se repiten de 7 en 7. La solución original, con sorpresa musical, la podéis ver a continuación


Y ahora os comento lo que yo hice, que es prácticamente lo mismo que viene en el vídeo: trabajar en , o dicho de otro modo, en módulo 7. Para ello, las notas Do-Re-Mi-Fa-Sol-La-Si se corresponderán con 0-1-2-3-4-5-6 respectivamente.
En mi método, como trabajamos módulo 7, da igual sumar 0, que 7, que 14, que... ; o bien, da igual sumar 1 que 8, que 15, que... etc... Por eso, como al cabo de 7 notas volvemos al DO y habría que sumar 8 (que es lo mismo que 1), se vuelve a repetir cíclicamente, la sucesión de las 7 primeras notas. Así que, como bien dicen en el vídeo, basta con contar lo que ocurre en las primeras 7 notas.... y multiplicar por 1000.
Pero bueno, por si acaso, también comprobé mi solución con el Mathematica haciendo un pequeño programita (la verdad es que me da vergüenza llamarlo así, pero en fin). En primer lugar, en vez de notas, trabajamos con números, así que buscamos una sucesión numérica . Como comenzamos en un DO, sabemos que , , y sucesivamente, . De esta forma, es fácil comprobar que la sucesión con la que vamos a trabajar es la de los números triangulares pero comenzandoen 0; así .
Así, y gracias a la potencia del Mathematica (versión 8, en mi caso), basta definir en primer lugar la sucesión

a[n_] := n (n - 1)/2


A continuación, para cada , escribo una lista en la que sólo aparezcan, de los 7000 primeros términos de , aquéllos que sean iguales a módulo 7

Nota[k_] := Table[If[Mod[a[n], 7] == k, a[n], ""], {n, 1, 7000}];


Realmente, lo que hago es escribir $$a(n)$$ si es $$k$$ módulo 7, y escribir una cadena vacía ("") si no lo es. Finalmente, le digo que me cuente cuántos números naturales hay en cada una de las 7 listas anteriores.

Table[Count[Nota[k], _Integer], {k, 0, 6}]


El resultado es una lista de 7 elementos:

{2000, 2000, 0, 2000, 0, 0, 1000}


que corresponde con la cantidad de veces que aparece la nota DO-RE-MI-FA-SOL-LA-SI respectivamente. Así se comprueba que las notas DO-RE-FA aparecen 2000 veces, SI aparece 1000 veces y MI-SOL-LA no aparecen nunca.
En fin, un problema sencillo, pero que a mí me ha resultado muy bonito.