Техника

какой алгоритм лежит в основе выбора "случайной" песни в плеере?

генератор случайных чисел
Azat Melkonyan
Azat Melkonyan
14 267
Лучший ответ
есть такое понятие - датчик псевдослучайных чисел. разных датчиков - тысячи, и придумываются все новые и новые.

что там засунули в конкретной программе - ну откуда мы знаем! наверно и сам программист не знал, просто вызвал библиотечный.

простейший пример:
берем некоторое ненулевое число (любое, например - текущее время в миллисекундах или номер тика процессора) V0
V1=3141592621*V0 + 907633385
V2=3141592621*V1 + 907633385
V3=3141592621*V2 + 907633385
...
Естественно, считаем все в 32-х разрядных целых, так что результат на каждом шагу обрезается.
Vi получаются очень похожими на настоящие случайны числа - равномерно распредлены, некоррелрованы.

если хотим перемешать случайно несколько треков - приписываем к каждому по псевдослучайному числу от датчика, потом сортируем треки по этим числам, получаем числа - по возрастанию, треки - случайно.
НАсколько я знаю, тот же алгоритм, что и формула в Экселе СЛЧИС. Берется все из операционной системы. Перебор переменной и остановка.
Если устройство мобильное - скорее всего псевдослучайная последовательность, как описал Михаил Левин. Если же речь идет о программном плеере, работающем поверх операционной системы, то некоторые системы коллекционируют настоящие (а не псевдо) случайные события в так называемый пул энтропии. Например события от клавиатуры или от сетевой карты. И программа-плеер, обращаясь к пулу энтропии, получает уже не псевдослучайную, а действительно случайную последовательность.
Генератор случайных чисел с исключением выбранных.
Каждая песенка имеет уникальный идентификатор (УИД) . В программе существует алгоритм генерации случайного числа (УИД).