¡Soy músico y necesito más polirritmos en mi vida!
Se produce una polirritmia en la música (y en la naturaleza) cuando ocurren dos eventos (aplausos, notas, luciérnagas, etc.) en dos intervalos regulares diferentes. Los dos tipos de eventos ocurren una cantidad diferente de veces en el mismo intervalo.
Si toco con la mano izquierda dos veces y con la mano derecha 3 veces, en el mismo espacio de tiempo, se ve un poco así:
------
R . . .
L . .
Los guiones en la parte superior denotan la longitud del patrón polítmico, que es el múltiplo común más bajo o 2 y 3. Esto puede entenderse como el punto en el que se repite el patrón.
También hay un 'metarritmo', que es el patrón producido cuando cualquiera de las manos toca:
------
R . . .
L . .
M . ...
Esta es una polirritmia simple y muy común, con una proporción de 3: 2.
Digamos que no quiero hacer una simple polirritmia que pueda resolver en mi cabeza, así que necesito algo para resolverlo por mí. Podría hacerlo en formato largo en papel, o ...
Reglas:
- Escriba un código para generar y mostrar un diagrama de polirritmia, como se describió anteriormente.
- Cualquier idioma antiguo, intente con la menor cantidad de bytes.
- Su código toma dos argumentos:
- Número de toques con la mano izquierda (entero positivo)
- Número de toques con la mano derecha (entero positivo)
- Resolverá la longitud, que es el múltiplo común más bajo para los dos argumentos.
- La línea superior constará de dos caracteres de espacio en blanco seguidos de guiones que muestran la longitud (longitud * '-')
- La segunda y tercera líneas mostrarán el patrón para las manos derecha e izquierda:
- Comenzará con una R o L, denote qué mano es, seguido de un espacio.
- El intervalo para esa mano es la longitud dividida por su argumento.
- Los toques comenzarán en el tercer carácter, denotado por cualquier personaje que elija. A partir de entonces, mostrará los mismos caracteres de 'intervalo' de caracteres separados.
- No será más largo que la línea de longitud.
- La cuarta línea es el metarritmo:
- Comenzará con una M mayúscula, seguida de un espacio.
- A partir del tercer personaje, mostrará un personaje (cualquier personaje que elija) en cada posición donde haya un toque en la mano derecha o izquierda.
- El espacio en blanco al final es irrelevante.
Casos de prueba:
r = 3, l = 2
------
R . . .
L . .
M . ...
r = 4, l = 3
------------
R . . . .
L . . .
M . .. . ..
r = 4, l = 5
--------------------
R . . . .
L . . . . .
M . .. . . . ..
r = 4, l = 7
----------------------------
R . . . .
L . . . . . . .
M . . .. . . . .. .
r = 4, l = 8
--------
R . . . .
L ........
M ........
¡Feliz golf!
ry lcomo dos valores separados? ¿Podríamos aceptar una matriz de dos elementos, por ejemplo? ¿Qué tal el orden de ellos, es estrictamente rseguido l?