Saya seorang musisi, dan saya membutuhkan lebih banyak polyrhythms dalam hidup saya!
Polyrhythm terjadi dalam musik (dan di alam) ketika dua peristiwa (tepukan, catatan, kunang-kunang berkedip dll.) Terjadi pada dua interval reguler yang berbeda. Dua jenis peristiwa terjadi beberapa kali dalam interval yang sama.
Jika saya mengetuk dengan tangan kiri saya dua kali, dan dengan tangan kanan saya 3 kali, dalam ruang waktu yang sama, tampilannya sedikit seperti ini:
------
R . . .
L . .
Tanda hubung di bagian atas menunjukkan panjang pola polimmik, yang merupakan kelipatan umum terendah atau 2 dan 3. Ini dapat dipahami sebagai titik di mana pola berulang.
Ada juga 'metaritme', yang merupakan pola yang dihasilkan ketika kedua tangan mengetuk:
------
R . . .
L . .
M . ...
Ini adalah polyrhythm yang sederhana, dan sangat umum, dengan rasio 3: 2.
Katakan saja saya tidak ingin melakukan polyrhythm sederhana yang dapat saya kerjakan di kepala saya, jadi saya perlu sesuatu untuk menyelesaikannya untuk saya. Saya bisa melakukannya dalam bentuk panjang di atas kertas, atau ...
Aturan:
- Tulis beberapa kode untuk menghasilkan dan menampilkan diagram polyrhythm, seperti dijelaskan di atas.
- Bahasa lama apa saja, cobalah untuk byte paling sedikit.
- Kode Anda mengambil dua argumen:
- Jumlah keran dengan tangan kiri (bilangan bulat positif)
- Jumlah keran dengan tangan kanan (bilangan bulat positif)
- Ini akan menentukan panjangnya, yang merupakan kelipatan umum terendah untuk kedua argumen.
- Baris teratas akan terdiri dari dua karakter spasi putih diikuti oleh tanda hubung menampilkan panjang (panjang * '-')
- Baris kedua dan ketiga akan menunjukkan pola untuk tangan kanan dan kiri:
- Ini akan mulai dengan R atau L, menunjukkan tangan yang mana, diikuti oleh spasi.
- Interval untuk tangan itu adalah panjang dibagi dengan argumennya.
- Ketukan akan dimulai pada karakter ketiga, dilambangkan dengan karakter apa pun yang Anda pilih. Mulai saat itu akan menampilkan karakter 'interval' karakter yang sama terpisah.
- Tidak akan lebih panjang dari garis panjang.
- Baris keempat adalah metaritme:
- Ini akan mulai dengan huruf besar M, diikuti oleh spasi.
- Dari karakter ketiga dan seterusnya, itu akan menampilkan karakter (karakter apa pun yang Anda pilih) di setiap posisi di mana ada ketukan di kanan atau di tangan kiri.
- Trailing whitespace tidak relevan.
Kasus uji:
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 ........
Selamat bermain golf!
rdan lsebagai dua nilai yang terpisah? Bisakah kita menerima array dua elemen saja, misalnya? Bagaimana dengan urutan mereka, apakah itu rdiikuti dengan ketat l?