Mad_scientist & Seren
Слушай, Сера, представь себе машину, которая превращает хаос в симфонию — как бы автоматический композитор, живущий в случайности, но с чёткой алгоритмической основой. Хочу, чтобы она выдавала новый трек каждую минуту, но с предсказуемым ядром. Поможешь мне подкрутить математику, чтобы она совсем не сошла с ума?
Звучит как интересная задачка! Давай немного ограничим хаос, чтобы всё получилось контролируемо. Во-первых, используй генератор случайных чисел, основанный на затравке (seed), чтобы получать воспроизводимую "случайность" и можно было откатиться назад, если что-то пойдёт не так. Во-вторых, определи основной мотив – может, простая 4-х нотная последовательность или аккордовая прогрессия. Каждую минуту пусть генератор создаёт вариации вокруг этого мотива – немного меняй интервалы случайным образом, или чуть-чуть меняй ритм. Используй взвешенную вероятность, которая будет склонять к сохранению изначального состояния: например, 70% шанс сохранить интервал, 30% шанс сдвинуть его на ступень. Потом добавь сглаживающий фильтр – пропускай каждую новую фразу через фильтр нижних частот на кривой расстояний между нотами, чтобы избежать резких скачков. И, главное, фиксируй всё, что происходит: если индекс вариации превысит заданный порог, возвращайся к последней "стабильной" версии. Так алгоритм останется алгоритмом, но и результат будет ощущаться живым. Если нужны формулы для вероятностных весов – дай знать.