Algoritmo Fisher-Yates shuffle
Publicado por Osama Jr. (última atualização em 31/08/2009)
[ Hits: 7.629 ]
Homepage: Não tenho
Uma versão em shell script do algoritmo Fisher-Yates shuffle (também conhecido como Knuth-Shuffle). Essa versão não é lá muito eficiente devido às limitações da variável $RANDOM.
Mais detalhes: http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
P.S.: Obrigado SMarcell pelas dicas! ;)
#!/bin/bash
#
# "Implementação" em Shell Script do algoritmo Fisher-Yates shuffle.
# Autor: /bin/laden - 24/08/2009.
#
# Uso: fisher-yates-shuffle <valores>
# Ex.: ./fisher-yates-shuffle 0 1 2 3 4 5 6 7 8 9
#
# Mais detalhes: <man bash> ou <www.google.com> =P
#
# Obs.: Implementação pouco eficiente devido a limitação
# da variável RANDOM.
function fisher-yates-shuffle {
RANDOM=$$
declare -a array=($@)
declare -i k n=${#array[@]}
while [ $n -ge 0 ]
do
let "k = RANDOM % (n + 1)"
swap+=(${array[$k]})
array[k]=${array[$n]}
array[n]=$swap
let "n--"
done
echo "${swap[@]}" && return 0
}
fisher-yates-shuffle $@
Controlando o compartilhamento de internet por MAC
Srt2vtt in Shell Script (Beta)
Fechar contas em servidor Zimbra após 90 dias
Configurando interfaces de rede
File Browser: Crie sua Nuvem Pessoal Privada
A produção de áudio e vídeo no Linux e as distribuições dedicadas a esse fim
Criptografando sua Home com Gocryptfs para tristeza do meliante
A Involução do Linux e as Lambanças Desnecessárias desde o seu Lançamento
O Journal no Linux para a guarda e consulta de logs do sistema
Assistindo IPTV no Linux com Fred TV e Lista Free TV
Impressora Tomate MDK-007 no Ubuntu (ou qualquer distro Linux)
Acelerando a compilação de pacotes no Arch Linux (AUR) usando todos os núcleos do processador
VoidBR - Void Linux adaptado ao Brasil. (2)
Teclado sem conseguir usar o acento crase (2)
Warsaw no Ubuntu/Kubuntu 26.04, alguiém conseguiu? [RESOLVIDO] (2)
Continuando meus tópicos anteriores (13)
As Assinaturas Perderam o Negrito e o Itálico? [RESOLVIDO] (1)









