Como funciona a opção 'shuffle' nas aplicações dos leitores de música?
Shuffle é um aleatorizador bastante padrão encontrado em quase todos os players. Os aplicativos de tocadores de música usam uma função aleatória, como Math.random(), para obter um número aleatório entre 0 e 1. Este número aleatório é multiplicado pelo número de faixas de música que você tem e o resultado é arredondado.
e.g. Você tem 100 músicas na sua biblioteca de mídia. A indexação é usada para armazenar as faixas. Então a primeira música teria uma posição de índice 0 e a 100ª música teria um índice de 99.
>> Agora deixe que o número aleatório gerado ao embaralhar a lista seja 0.4795296389327497 (digamos). Como dito acima, o número aleatório é multiplicado pelo número de músicas, ou seja, 100.
> Arredondando, você obtém 47 ou 48 conforme a função usada para arredondamento: teto ou piso. Que é o índice da 47ª ou 48ª canção respectivamente.
>> Faz isso novamente, e verifica com todos os índices usados anteriormente, a fim de evitar que a mesma canção seja tocada duas vezes, até que ela tenha um array de 100 canções. Isto garante que nenhuma canção será repetida, garantindo assim a não repetibilidade juntamente com a aleatoriedade.
Este é um procedimento bastante padrão seguido por todas as funções de embaralhamento nos leitores de música.