говнокод
Posted: 14 Jan 2017, 15:46
Почему 99% музыкальных плееров не умеют проиграть список в *случайном*, порядке? Ну т.е. функция там такая есть, но авторы, долбоёбы, не могли сделать одной из трёх вещей:
1) взять нормальный ГПСЧ таки, а не библиотечных rand(), дающий чёрти что (и проинициализировать его хоть текущим временем что ли);
2) взять числа от 1 до N, взять 2*N случайных чисел и переставить местами два числа в списке (по rand() номеру), брать числа по порядку из полученного списка и играть соответствующую числу композицию. А не играть, @#$%!, композицию по rand() номеру... который, @@#!$!!, ещё через rand()%N усекли (в мане, !@#$#!, написано, !@##$!, делить надо, а не остаток брать).
3) Взять пару взаимно простых чисел... Одно равное или большее N, второе -- любое меньшее N. Каждый раз к номеру композиции прибавлять второе (брать остаток от деления на первое). Гарантированно пробежит по всему списку, где случайность обеспечивается выбором первой композиции и выбором второго числа.
В итоге имеем список на 1000 пунктов и всегда по одному заведённому порядку играется только 20. До остальных никогда не доходит. AyEmul похоже тоже... :-(
1) взять нормальный ГПСЧ таки, а не библиотечных rand(), дающий чёрти что (и проинициализировать его хоть текущим временем что ли);
2) взять числа от 1 до N, взять 2*N случайных чисел и переставить местами два числа в списке (по rand() номеру), брать числа по порядку из полученного списка и играть соответствующую числу композицию. А не играть, @#$%!, композицию по rand() номеру... который, @@#!$!!, ещё через rand()%N усекли (в мане, !@#$#!, написано, !@##$!, делить надо, а не остаток брать).
3) Взять пару взаимно простых чисел... Одно равное или большее N, второе -- любое меньшее N. Каждый раз к номеру композиции прибавлять второе (брать остаток от деления на первое). Гарантированно пробежит по всему списку, где случайность обеспечивается выбором первой композиции и выбором второго числа.
В итоге имеем список на 1000 пунктов и всегда по одному заведённому порядку играется только 20. До остальных никогда не доходит. AyEmul похоже тоже... :-(