Algoritmo Fisher-Yates shuffle
Publicado por Osama Jr. (última atualização em 31/08/2009)
[ Hits: 7.539 ]
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 $@
Remover espaços em branco em nomes de arquivos
Configurar a rede no Debian, Kurumim e Ubuntu
S-phoenix desliga/reinicia, quantos estão logado no PC, tempo ligado
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Linux Mint: Zram + Swapfile em Btrfs
O widget do Plasma 6 Área de Notificação
Quando vocês pararam de testar distros? (16)
Quero instalar, configurar, setar tamanho do rsyslog. (5)









