Я музикант, і мені потрібно більше поліритмів у житті!
Поліритм виникає в музиці (і в природі), коли відбувається дві події (хлопання, ноти, миготіння світлячків тощо) з двома різними регулярними інтервалами. Два види події трапляються різну кількість разів за один і той же інтервал.
Якщо я торкаюся лівою рукою двічі, а правою рукою 3 рази, за той же проміжок часу, це виглядає трохи так:
------
R . . .
L . .
Дефіси вгорі позначають довжину поліритмічного малюнка, яка є найменшим загальним кратним або 2 і 3. Це можна зрозуміти як точку, в якій повторюється візерунок.
Існує також "метаризм", який є зразком, що утворюється при натисканні будь-якої руки:
------
R . . .
L . .
M . ...
Це простий і дуже поширений поліритм із співвідношенням 3: 2.
Скажімо просто, що я не хочу робити простий поліритм, який я можу опрацювати в голові, тому мені потрібно щось розробити для мене. Я міг би зробити це на довгій формі на папері, або ...
Правила:
- Напишіть деякий код для створення та відображення діаграми поліритму, як описано вище.
- Будь-яка стара мова, спробуйте найменше байтів.
- Ваш код бере два аргументи:
- Кількість відводів лівою рукою (додатне ціле число)
- Кількість натискань правою рукою (натуральне число)
- Він визначить довжину, яка є найнижчим загальним кратним для двох аргументів.
- Верхня лінія буде складатися з двох символів пробілу, а потім дефісів із довжиною (довжина * '-')
- У другому та третьому рядках буде показано схему для правої та лівої руки:
- Почнеться з R або L, позначте, яка це рука, а потім пробіл.
- Інтервал для цієї руки - це довжина, поділена на аргумент.
- Мітки починатимуться з третього символу, який позначатиметься будь-яким обраним вами символом. З цього моменту він відображатиме однакові символи "інтервалу" один від одного.
- Вона не буде довшою, ніж лінія довжини.
- Четвертий рядок - метаритм:
- Почнеться з верхнього регістру М, після чого пробіл.
- Починаючи з третього символу, він показуватиме персонаж (будь-який обраний вами персонаж) у кожному положенні, де є крана правої чи лівої руки.
- Пробіл пробігу не має значення.
Тестові приклади:
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як дві окремі величини? Чи можемо ми замість цього прийняти двоелементний масив? Як щодо порядку їх дотримання, це суворо rдотримується l?