私はミュージシャンであり、人生でもっとポリリズムが必要です!
ポリリズムは、2つのイベント(拍手、音、ホタルの点滅など)が2つの異なる定期的な間隔で発生するときに、音楽(および自然)で発生します。2種類のイベントは、同じ間隔で異なる回数発生します。
同じ時間内に左手で2回、右手で3回タップすると、次のようになります。
------
R . . .
L . .
上部のハイフンは、多発性パターンの長さを示します。これは、最小公倍数または2と3です。これは、パターンが繰り返されるポイントとして理解できます。
「メタリズム」もあります。これは、どちらかの手がタップされたときに生成されるパターンです。
------
R . . .
L . .
M . ...
これはシンプルで非常に一般的なポリリズムで、比率は3:2です。
頭の中でできるシンプルなポリリズムをしたくないので、それを解決するために何かが必要です。紙の上で長い形式でやることもできますし...
ルール:
- 上記のように、ポリリズムダイアグラムを生成および表示するコードを記述します。
- 古い言語は、最小限のバイトで試してください。
- コードは2つの引数を取ります。
- 左手でのタップ数(正の整数)
- 右手でのタップ数(正の整数)
- 2つの引数の最小公倍数である長さを計算します。
- 一番上の行は、2つの空白文字とそれに続く長さ(長さ* '-')を表示するハイフンで構成されます
- 2行目と3行目には、右手と左手のパターンが表示されます。
- RまたはLで始まり、どちらのハンドであるかを示し、その後にスペースが続きます。
- その手の間隔は、長さを引数で割ったものです。
- タップは、選択した任意の文字で示される3番目の文字から始まります。それ以降は、同じ文字の「間隔」文字が離れて表示されます。
- 長さの行より長くなることはありません。
- 4行目はメタリズムです。
- 大文字のMで始まり、その後にスペースが続きます。
- 3番目のキャラクターからは、右手または左手のいずれかのタップがあるすべての位置にキャラクター(選択した任意のキャラクター)が表示されます。
- 末尾の空白は無関係です。
テストケース:
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 ........
ハッピーゴルフ!
rなりlませんか?たとえば、代わりに2要素の配列を受け入れることはできますか?それらの順序はどうですか、それは厳密にr続きlますか?