Просто ідея у мене була на днях: Здійснення ударів за ланцюжком Маркова заздалегідь заданих звуків.
Пам'ятаю, хтось робив битбокс з Google Translate і німецькою мовою (перейдіть за посиланням і натисніть прослухати).
Отже, завдання полягає в тому, щоб створити введення тексту в Google Translate із заданого ланцюжка. Або ви можете використовувати музичні ноти і грати самі :).
Ви можете зробити програму, що читає рядок з кількістю ударів, інший з їх іменами та матричним поданням ймовірностей (ви можете вибрати представлення).
Ви також можете зробити функцію за допомогою цих трьох аргументів.
Напр
[вхід]
20
pv zk bschk kkkk
[[.1, .4, .5, 0.],
[.3, .2, .3, .2],
[0., .3, .2, .5],
[.1, .8, .1, 0.]]
[вихід] щось на кшталт:
pv zk bschk zk pv bschk zk pv zk bschk kkkk pv bschk zk bschk bschk bschk zk kkkk bschk
Стартова ймовірність однакова для кожного удару.
Це не проблема з кодовим гольфом, тому що я хотів би побачити деякі приємні рішення (будьте креативними).
Додаткові бали, якщо вигадуєте нові удари та / або вибираєте таблицю ймовірностей, яка дає хороші удари більшу частину часу.
Якщо хочете, ви можете використовувати справжні ритми (На багатьох мовах легко відкривати .wav
файли, як-от wave
модуль в Python) та створювати музику! Ось кілька безкоштовних зразків ударів.
Я можу розмістити посилання на реалізацію, якщо потрібно.