Ich bin Musiker und brauche mehr Polyrhythmen in meinem Leben!
Ein Polyrhythmus tritt in der Musik (und in der Natur) auf, wenn zwei Ereignisse (Klatschen, Noten, Glühwürmchen blinken usw.) in zwei verschiedenen regelmäßigen Intervallen auftreten. Die beiden Arten von Ereignissen treten in demselben Intervall unterschiedlich oft auf.
Wenn ich zweimal mit der linken Hand und dreimal mit der rechten Hand im selben Zeitraum tippe, sieht es ein bisschen so aus:
------
R . . .
L . .
Die Bindestriche oben bezeichnen die Länge des polyrthmischen Musters, das ist das niedrigste gemeinsame Vielfache oder 2 und 3. Dies kann als der Punkt verstanden werden, an dem sich das Muster wiederholt.
Es gibt auch einen "Metarhythmus", der das Muster ist, das erzeugt wird, wenn eine Hand tippt:
------
R . . .
L . .
M . ...
Dies ist ein einfacher und sehr gebräuchlicher Polyrhythmus mit einem Verhältnis von 3: 2.
Sagen wir einfach, ich möchte keinen einfachen Polyrhythmus machen, den ich in meinem Kopf trainieren kann, also brauche ich etwas, um es für mich zu trainieren. Ich könnte es auf Papier machen, oder ...
Regeln:
- Schreiben Sie Code, um wie oben beschrieben ein Polyrhythmusdiagramm zu erstellen und anzuzeigen.
- Bei allen alten Sprachen versuchen Sie es mit den wenigsten Bytes.
- Ihr Code benötigt zwei Argumente:
- Anzahl der Taps mit der linken Hand (positive ganze Zahl)
- Anzahl der Taps mit der rechten Hand (positive ganze Zahl)
- Es wird die Länge berechnet, die das niedrigste gemeinsame Vielfache für die beiden Argumente ist.
- Die oberste Zeile besteht aus zwei Leerzeichen, gefolgt von Bindestrichen, die die Länge anzeigen (Länge * '-').
- Die zweite und dritte Zeile zeigen das Muster für die rechte und die linke Hand:
- Es beginnt mit einem R oder L, gibt an, um welche Hand es sich handelt, gefolgt von einem Leerzeichen.
- Das Intervall für diese Hand ist die Länge geteilt durch das Argument.
- Die Taps beginnen mit dem dritten Zeichen, das durch ein beliebiges von Ihnen ausgewähltes Zeichen gekennzeichnet ist. Von da an wird das gleiche Zeichen "Intervall" Zeichen angezeigt.
- Es wird nicht länger als die Länge sein.
- Die vierte Zeile ist der Metarhythmus:
- Es beginnt mit einem Großbuchstaben M, gefolgt von einem Leerzeichen.
- Ab dem dritten Zeichen wird an jeder Stelle, an der auf die rechte oder linke Hand getippt wird, ein Zeichen (ein beliebiges Zeichen) angezeigt.
- Das nachgestellte Leerzeichen ist irrelevant.
Testfälle:
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 ........
Viel Spaß beim Golfen!
rund lals zwei getrennte Werte akzeptieren ? Können wir stattdessen beispielsweise ein Array mit zwei Elementen akzeptieren? Wie steht es mit der Reihenfolge, wird das genau rbefolgt l?